2011-01-21 39 views
4

你怎麼能檢測到電平變化window.location.hash,比如我可以這樣做:如何檢測窗口哈希的變化?

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

如果我改變了哈希值,例如編輯並通過在編輯後按Enter來更改散列,只有在窗口重新加載時纔會檢測到散列中的更改。

回答

11

最近的瀏覽器(FF3.6 +,IE8,Chrome)支持窗口對象上的「hashchange」事件 - 有關使用示例,請參閱MDC: window.onhashchange。簡單的異步聽力可能看起來像:

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

如果你想支持舊版本瀏覽器的實現,事情變得相當複雜,很快,我建議使用別人的庫或插件 - 看到了幾個建議答案to this question