如果哈希标记以twoB
结尾,则在刷新页面时会触发以下警告:
if (window.location.href.match(/\#twoB/))
{
alert('twoB');
}
问题在于,如果您点击了几个哈希标签,然后在浏览器中单击后退,虽然URL包含哈希,但警报不会触发。在用户使用浏览器返回或转发后,如何激活(理想情况下)代码。
我正在为这个项目使用jQuery,所以如果语法更容易,我想在理想的世界中使用jQuery解决方案。
答案 0 :(得分:3)
$(window).on("hashchange", function () {
console.log("hash is now " + window.location.hash);
});
请注意,jQuery 1.7中添加了on
;如果您使用的是旧版本,请改为$(window).bind
。
答案 1 :(得分:0)
最初我解决了这个使用setInterval重复检查URL的丑陋方式。 HTML5s onpopstate在首次加载页面时运行,然后是每个前进和后退导航。
window.onpopstate = function(){
if (window.location.href.match(/\#twoB/))
{
alert('twoB');
}
}
答案 2 :(得分:0)
为什么不使用location.hash而不是href.match? location.hash应该更快,因为你只获得哈希并且你不必进行匹配?