2013-04-11 139 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