基本上,如果网址/ window.location
绝对包含任何变量(当然是过去的域名),我希望javascript能够执行某些操作。
目前,我有以下jQuery代码,只有当window.location
包含确切的措辞“#hash”时才执行,但如前所述,我想扩展所有变量的功能。
修改:抱歉,澄清一下,变量我的意思是以下任何一个例子:
此外,如果有人知道如何在基本的Javascript中执行此操作并且不需要jQuery库,那将是一个额外的好处!
$(function() {
if ( window.location.href.indexOf('#hash') > -1 ) {
myfunctionhere;
}
});
答案 0 :(得分:3)
请参阅最后更新您的澄清
将脚本放在页面末尾,就在结束</body>
之前,然后:
如果“变量”是指文档片段标识符(“hash”),则:
<script>
if (location.hash) {
callYourFunction();
}
</script>
如果“变量”是指查询字符串,那么
<script>
if (location.search) {
callYourFunction();
}
</script>
如果“变量”是指资源名称,例如,不是http://domain.com
而是http://domain.com/page
,那么:
<script>
if (location.pathname && location.pathname !== "/") {
callYourFunction();
}
</script>
有关位置对象on MDN的更多信息。
重申你的澄清:
编辑:对不起,澄清一下,变量我的意思是以下任何一个例子:
这些示例归结为hash
或pathname
或两者都有,所以:
<script>
if ((location.pathname && location.pathname !== "/") || location.hash) {
callYourFunction();
}
</script>
...当然,如果您还想处理http://domain.com?foo=bar
,请同时添加search
:
<script>
if ((location.pathname && location.pathname !== "/") ||
location.search ||
location.hash) {
callYourFunction();
}
</script>
答案 1 :(得分:2)
您可以检查是否有hash
,pathname
或search
。
或者,为了简化,您可以简单地使用它:
if (window.location.href.split('/').filter(Boolean).length > 2) {
callYourFunction();
}
window.location.href
只是整个网址。如果域名后面有内容,则会显示。
以下情况将触发此功能:
答案 2 :(得分:0)
您可以检查search
的{{1}}属性是否设置为某事。此外,您可以查看window.location
属性:
hash
要在没有jQuery的情况下调用它,只需将其包含在'onload'脚本中:
if (window.location.search || window.location.hash) {
yourfunctionhere();
}