2017-01-31 39 views
1

我在檢查我的網站上的網頁中的網址時遇到問題。 這就是我所擁有的。檢查確切的URL

檢查的確切字符串效果很好:

var url = location.pathname; 
if ("url:contains('texas-ignition-interlock')") { 
    $("body").addClass("texas-ppc-page"); 
} 

但是,當我有類似的話頁面的URL,這兩個類都加入到這兩個網頁。

var url = location.pathname; 
if ("url:contains('texas-ignition-interlock-device')") { 
    $("body").addClass("texas-ppc-device-page"); 
} 

我也嘗試indexOf,並沒有工作做類似名稱的網頁。 這是我試過的,這適用於第一個例子。第二個例子會添加第一個類。

if (window.location.href.indexOf("texas-ignition-interlock") > -1) { 
    $("body").addClass("texas-ppc-page"); 
} 

if (window.location.href.indexOf("texas-ignition-interlock-devices") > -1) { 
    $("body").addClass("texas-ppc-device-page"); 
} 

現在,我仍然可以使用indexOf版本。我只是使用類.texas-ppc-page將目標鎖定在一頁上,而在第二頁上,我將使用.texas-ppc-page.texas-ppc-device-page這兩個類別作爲目標。

有沒有更好的方式與JS或jQuery做到這一點?

+0

爲什麼不在服務器上添加這些類? – charlietfl

+0

我們在DNN CMS上。數據庫驅動頁面。 – Vcasso

回答

2

您可以使用拆分(「/」),以location.pathname分割成字符串數組。 location.pathname將類似於/questions/41968769/checking-for-exact-url所以通過拆分此字符串「/」將導致進入

["", "questions", "41968769", "checking-for-exact-url"]

現在可以執行的indexOf(「」),如果字符串完全匹配,將返回非值-1,就像在這種情況下,如果我做indexOf(「url」)函數將返回-1,並且如果我做indexOf(「checking-for-exact-url」)它將返回3.

+0

下面是我如何使用你的答案:var url = location.pathname.split(「/」); var url1 = url.indexOf(「texas-ignition-interlock」); var url2 = url.indexOf(「texas-ignition-interlock-devices」); if(url1 == 2) { alert(「firstPage」); } 如果(URL2 == 2){ 警報 ( 「secondPage」); } 謝謝你的幫助! – Vcasso

+0

不客氣,很高興可以幫助你。 :) –

+0

Mohd,如果你有時間檢查其他答案。我一起用你的例子。工作也很好。 – Vcasso

1

如果您更願意檢查字符串類似於你的方式,你可以利用正則表達式,通過.test,如下面的佔位符^$ ,分別爲開始和結束。否則,indexOf甚至會匹配一部分字符串。看看下面的...

var url = 'texas-ignition-interlock-devices'; 

console.log(/^texas-ignition-interlock$/.test(url));   // false 
console.log(/^texas-ignition-interlock-devices$/.test(url)); // true 
+0

我使用了Mohd的第一個答案。但這也是很好的答案! .test對我來說是新的。我把第一個(接受的)答案和你的答案混合在一起,它工作得很好。這裏是我如何在螢火蟲測試: var url = location.pathname.split(「/」)[2]; (「firstPage」);如果(/^texas-ignition-interlock $ /。test(url)) { } if(/^texas-ignition-interlock-devices $ /。test(url)) { alert(「secondPage」); }我會upvote你的答案! – Vcasso