我使用document.URL来检测用户是否在index.html上:
if(document.URL.indexOf("index") >-1) return true;
但是如果用户键入“mydomain.com”或“mydomain.com/”,则测试返回false。
我可以试试:
if(document.URL ==="http://myDomain.com") return true;
但我想在不同的域上使用此代码。有什么建议吗?
答案 0 :(得分:10)
网址排列很多,可以表示用户在index.html
上。相反,你不能把var放在那个文件中:
<script type="text/javascript">
on_index = true;
</script>
只检查on_index
是否未定义且为真。这在100%的时间都是准确的。
答案 1 :(得分:5)
javascript Location object有许多有用的属性,特别是,您可以检查location.pathname
。
基本上,如果路径名为1),则您位于“索引”页面上2)等于斜线/
3)以index
或/index
开头。< / p>
var p = window.location.pathname;
if (p.length === 0 || p === "/" || p.match(/^\/?index/))
alert ("on the index page!")
有关主要斜杠问题的讨论,请参阅Javascript .pathname IE quirk?。
答案 2 :(得分:2)
您可以使用
if (document.location.pathname === '/' ||
document.location.pathname.indexOf('index') >-1 ) {
return true;
}
如果您可以访问实际页面而不仅仅是脚本,那么您应该遵循@Ben Everard's建议。
请确保在脚本之前添加他建议的代码段。
答案 3 :(得分:2)
文件和网址之间没有直接链接。此外,index.html
不需要位于网站的根目录中,默认页面也不必是index.html
。
如果你想要一个通用的解决方案,你可能会运气不好。如果您需要针对特定案例的解决方案,您只需从页面本身提供该信息,例如定义ID或类名:
<body class="index">
...或JavaScript变量:
// Pick one
var page = 'index';
var isIndex = true;
如果你想要的只是一些带有当前位置的简单字符串操作,那么抓住pathname
对象的window.location
属性:
// Untested
if( window.location.pathname=="/" || window.location.pathname=="/index.html" ){
}