2012-10-10 102 views
4

我需要根據URL末尾有一個覆蓋圖向下滑動。如何檢查URL是否在末尾有一個特定的字符串

如果(URL有 '常見問題解答' 末) { 覆蓋歸結 }

你怎麼能做到這一點jQuery的/ JavaScript的?

+1

是您的URL字符串或你的意思是當前網頁的網址? –

+0

抱歉,我的錯誤URL是實際的網頁網址... – Alex

+0

您的網址看起來像什麼?爲了更容易地找出正確的方法 – Salketer

回答

10

如果你的URL看起來像這樣http://yourdomain.com/faq,你可以做這樣的事情:

var url = window.location.href; 
var lastPart = url.substr(url.lastIndexOf('/') + 1); 

if (lastPart === "faq") { 
    // Show your overlay 
} 

這樣可以檢查其他結局並對它們採取行動。

更新:

得到它的工作,即使網址有一個尾隨斜線,您可以創建這樣一個功能:

function getLastPart(url) { 
    var parts = url.split("/"); 
    return (url.lastIndexOf('/') !== url.length - 1 
     ? parts[parts.length - 1] 
     : parts[parts.length - 2]); 
} 

然後,您可以調用該函數像getLastPart(window.location.href)到獲取當前頁面的URL的最後部分。

這裏是一個工作的例子還有:http://jsfiddle.net/WuXHG/

免責聲明:如果您的網址結尾,或查詢字符串使用散列,你就必須首先從網址中去除,此腳本才能正常工作

+0

這個工作完美正常 – Alex

+0

小問題那麼,如果在末尾添加了「/」,則它不起作用。 – Alex

+0

www.site.com/faq/不起作用... – Alex

8

您應該能夠使用window.location的對象這一個正則表達式,像這樣:

/faq$/.test(window.location) 
+0

忽略參數:/path\/to$/.test(window.location.pathname) –

1

可以使用得到當前的URL:

var currentUrl = window.location.href; 

然後你可以使用的indexOf檢查,如果您的令牌是字符串(這裏FAQ)

012結束
if (currentUrl.indexOf('faq') == currentUrl.length - 3) 
{ 
    // Do something here 
} 
1

已將新方法endsWith()添加到ES6規範中。對於以前的版本中,它可以使用

if (!String.prototype.endsWith) 
    String.prototype.endsWith = function(searchStr, Position) { 
     // This works much better than >= because 
     // it compensates for NaN: 
     if (!(Position < this.length)) 
     Position = this.length; 
     else 
     Position |= 0; // round position 
     return this.substr(Position - searchStr.length, 
         searchStr.length) === searchStr; 
    }; 

現在加入,你可以很容易地編寫

If (window.location.href.endsWith("faq")) { 
    // Show your overlay 
} 

參考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith

相關問題