2013-04-11 163 views
1

好日子如何獲得URL的路徑名不帶路徑

我使用這個函數來獲得當前窗口的路徑:

var pathname = window.location.pathname; 

if(pathname == '/someDir'){ 
    do something 
} 

現在,如果你沒有路你會怎麼做即:http://mydomain.com

現在我能做的就是以下幾點:

var hostname = document.location.hostname; 

if(hostname == 'mydomain.com'){ 
    do something on the home page only!; 
} 

但上面的代碼的問題是它會在所有頁面,因爲該主機名被包含到處...即mydomain.com/contact執行

那麼我該如何定位主頁(「mydomain.com」)?

回答

1

試試這個。

var hostname = document.location.hostname; 
var pathname = document.location.pathname; 

if(hostname == 'mydomain.com' && pathname == '/'){ 
    do something on the home page only!; 
} 

你會注意到我添加了一個檢查pathname等於'/'。那將是你的主頁,除非你已經配置了你的服務器。

您可能還想檢查路徑名'/index.htm'(或任何您的索引文件,如果有的話),如果用戶在那裏結束。

+0

謝謝,但我的主頁網址只是格式:mydomain.com,與nou尾隨'/'或任何... – DextrousDave 2013-04-11 15:14:30

+0

正斜槓*應*仍然工作。但是,如果您確定無法正常工作,請嘗試用'!pathname'替換'pathname =='/''。 – Matt 2013-04-11 15:19:46

0

這可能說明明顯但如何

var pathname = window.location.pathname; 
if (pathname === "/") { 
    do something on the home page only!; 
} 

不應該有任何理由檢查主機名作爲你的代碼只能在自己的域名,「mydomain.com」被執行。

+0

你看,我的目標網頁/網頁沒有尾隨/ – DextrousDave 2013-04-11 15:02:14

+0

這應該沒有關係,如果我沒有弄錯,那麼即使沒有結尾的斜線,window.location.pathname也會返回'「/」'(至少它在Chrome上適用於我)。 – 2013-04-11 15:52:29