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

标签 javascript hash window.location

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

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

如果我更改哈希值,例如编辑后按回车键编辑并更改哈希没有任何反应,只有在窗口重新加载时才会检测到哈希的更改。

最佳答案

最新的浏览器(FF3.6+、IE8、Chrome)支持窗口对象上的“hashchange”事件 - 请参阅 MDC: window.onhashchange获取使用示例。简单的异步监听可能如下所示:

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

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

关于javascript - 如何检测窗口哈希的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136294/

相关文章:

javascript - Bootstrap 词缀导航栏 scrollspy 问题

javascript - 停止 iframe 页面中的所有动画

javascript - 我可以用 javascript 锁定浏览器地址栏到特定域吗?

c - 将 int16_t 哈希为 uint64_t

javascript - 如何让 AngularJS 不给 hash-fragment 添加 "/"前缀

Javascript:如何捕获导航到使用 window.location.href = url 的页面上的错误

javascript - 以主体为中心的可拖动固定元素导致它在 IE 和 Chrome 中向左移动?

javascript - UIWebView和javascript需要加载数据

perl - 将哈希翻过来最优雅的方法是什么?

activerecord - 导轨 + 事件记录 : how create a hash from table with particular field's value as key