如何通过history.pushState获得有关历史记录更改的通知?
因此,现在HTML5引入了history.pushState
来更改浏览器历史记录,网站开始将其与Ajax结合使用,而不是更改URL的片段标识符。
可悲的是,这意味着 无法再被 检测到这些调用。onhashchange
我的问题是:有没有可靠的方法(黑客?;))来检测网站何时使用?该规范没有说明任何有关引发的事件的信息(至少我找不到任何内容)。
我试图创建一个外观并用我自己的JavaScript对象替换,但它根本没有任何效果。history.pushState
window.history
进一步说明:我正在开发一个Firefox附加组件,需要检测这些变化并采取相应的行动。
我知道几天前有一个类似的问题,询问监听一些DOM事件是否有效,但我宁愿不依赖它,因为这些事件可以出于许多不同的原因生成。
更新:
这是一个jsfiddle(使用Firefox 4或Chrome 8),显示调用时未触发(或者我做错了什么?随意改进它!onpopstate
pushState
更新 2:
另一个(侧面)问题是使用时没有更新(但我认为我已经在这里读到了这一点)。window.location
pushState