如何检测窗口哈希的变化?

Mac*_*Mac 4 javascript hash window.location

如何检测window.location.hashonchange,例如我可以这样做:

if(window.location.hash.hasChanged())
{
   // ajax stuff
}
else
{
   // nothing, no hash has been changed (without any window reload)
}
Run Code Online (Sandbox Code Playgroud)

如果我更改哈希值,例如编辑并在编辑后按Enter键更改哈希值,则仅在窗口重新加载时将检测哈希值的更改.

nra*_*itz 13

最新的浏览器(FF3.6 +,IE8,Chrome)支持窗口对象上的"hashchange"事件 - 有关用法示例,请参阅MDC:window.onhashchange.简单的异步侦听可能如下所示:

window.onhashchange = function() {
   // do something awesome here
};
Run Code Online (Sandbox Code Playgroud)

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