Javascript 如何检测窗口哈希的更改?

Javascript 如何检测窗口哈希的更改?,javascript,hash,window.location,Javascript,Hash,Window.location,如何在更改时检测窗口.location.hashonchange,例如,我可以这样做: if(window.location.hash.hasChanged()) { // ajax stuff } else { // nothing, no hash has been changed (without any window reload) } 如果我更改了哈希值,例如,编辑后按enter键编辑并更改哈希值,则只有在窗口重新加载时才会检测到哈希值的更改。Ben Alman提供了监视

如何在更改时检测
窗口.location.hash
onchange,例如,我可以这样做:

if(window.location.hash.hasChanged())
{
   // ajax stuff
}
else
{
   // nothing, no hash has been changed (without any window reload)
}
如果我更改了哈希值,例如,编辑后按enter键编辑并更改哈希值,则只有在窗口重新加载时才会检测到哈希值的更改。

Ben Alman提供了监视哈希值更改的功能。

最新的浏览器(FF3.6+,IE8,Chrome)支持“哈希值更改”窗口对象上的事件-有关用法示例,请参阅。简单异步侦听可能如下所示:

window.onhashchange = function() {
   // do something awesome here
};

如果您想要一个支持旧浏览器的实现,那么事情很快就会变得复杂,我建议您使用其他人的库或插件-请参阅答案以获得一些建议。

很高兴我不必依赖jQuery来完成这项工作。