获取URL哈希位置,并在jQuery中使用它
我想获得当前页面的URL哈希后的值,然后能够将其应用于一个新的function…例如。
url可以是
www.example.com/index.html#foo
我想和下面的一段代码一起使用
$('ul#foo:first').show();
我有点假设/希望有办法抓住这个,把它变成一个variables,然后我可以在第二段代码中使用。
任何帮助将大力赞赏!
干杯
您可以使用location.hash
属性来获取当前页面的哈希值:
var hash = window.location.hash; $('ul'+hash+':first').show();
请注意,该属性在开头已经包含了#
符号。
其实你不需要:first
伪select器,因为你正在使用IDselect器 ,假设ID在DOM中是唯一的。
如果你想从URLstring中获取哈希值,可以使用String.substring
方法:
var url = "http://example.com/file.htm#foo"; var hash = url.substring(url.indexOf('#')); // '#foo'
build议:请注意,用户可以根据需要更改散列,向select器中注入任何内容,在使用散列之前应检查散列。
如果IE(包括IE9),如果你的页面包含iframe,那么在iframe内容的手动刷新之后,location.hash的值是旧的(首页加载的值), location.hash对于IE是不安全的 。 而手动检索的值不同于location.hash,因此总是通过document.URL检索
var hash = document.URL.substr(document.URL.indexOf('#')+1)
对于那些正在寻找纯粹的JavaScript解决scheme
document.getElementById(location.hash.substring(1)).style.display = 'block'
希望这可以为你节省一些时间。