如何检测window.location.hash
onchange,例如我可以这样做:
if(window.location.hash.hasChanged())
{
// ajax stuff
}
else
{
// nothing, no hash has been changed (without any window reload)
}
如果我更改哈希,例如编辑并在编辑后按Enter键更改哈希没有任何反应,只有在窗口重新加载才会检测到哈希值的变化。
答案 0 :(得分:13)
最新的浏览器(FF3.6 +,IE8,Chrome)支持窗口对象上的“hashchange”事件 - 有关用法示例,请参阅MDC: window.onhashchange。简单的异步侦听可能如下所示:
window.onhashchange = function() {
// do something awesome here
};
如果你想要一个支持旧浏览器的实现,事情会很快变得复杂,我建议使用其他人的库或插件 - 请参阅答案to this question以获得一些建议。
答案 1 :(得分:2)
Ben Alman的hashchange jQuery plugin提供了监视哈希变化的能力。