我有一些jQuery/JavaScript代码,我想只在URL中有一个散列(#)锚链接时运行。如何使用JavaScript检查这个字符?我需要一个简单的全方位测试,可以检测到如下url:
example.com/page.html #锚 example.com/page.html # anotheranchor
基本上是这样的:
if (thereIsAHashInTheUrl) {
do this;
} else {
do this;
}
我有一些jQuery/JavaScript代码,我想只在URL中有一个散列(#)锚链接时运行。如何使用JavaScript检查这个字符?我需要一个简单的全方位测试,可以检测到如下url:
example.com/page.html #锚 example.com/page.html # anotheranchor
基本上是这样的:
if (thereIsAHashInTheUrl) {
do this;
} else {
do this;
}
当前回答
位置哈希的简单使用:
if(window.location.hash) {
// Fragment exists
} else {
// Fragment doesn't exist
}
其他回答
如果URI不是文档的位置,这个代码段将按照您的要求执行。
var url = 'example.com/page.html#anchor',
hash = url.split('#')[1];
if (hash) {
alert(hash)
} else {
// do something else
}
位置哈希的简单使用:
if(window.location.hash) {
// Fragment exists
} else {
// Fragment doesn't exist
}
把它放在这里,作为从任意类似uri的字符串中抽象位置属性的方法。虽然窗口。如果location instanceof location为true,则任何调用location的尝试都会告诉你它是一个非法构造函数。你仍然可以通过将你的字符串设置为DOM锚元素的href属性来获得诸如散列,查询,协议等,然后它将与window.location共享所有的地址属性。
最简单的方法是:
var a = document.createElement('a');
a.href = string;
string.hash;
为了方便起见,我写了一个小库,利用它来替换本机Location构造函数,使用一个将接受字符串并产生窗口的构造函数。位置类对象:Location.js
写上以下内容:
<script type="text/javascript">
if (location.href.indexOf("#") != -1) {
// Your code in here accessing the string like this
// location.href.substr(location.href.indexOf("#"))
}
</script>
if(window.location.hash) {
var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character
alert (hash);
// hash found
} else {
// No hash found
}