我的Google-fu一无所获。
执行此操作时:
var stateObj = { state: "some state" };
history.pushState(stateObj, "page 2", "other.htm");
是否存在关联的窗口回调?
我知道就是这样:
window.onpopstate = function() {
}
当用户点击后退按钮时,该功能非常适合收听。但是,我想在任何时候听到URL的变化,我不知道该怎么做。
网址更改时是否有全局回调?
答案 0 :(得分:20)
不,没有onpushstate
或其他什么。但是,一点猴子修补可以解决这个问题:
var pushState = history.pushState;
history.pushState = function () {
pushState.apply(history, arguments);
fireEvents('pushState', arguments); // Some event-handling function
};
这只会在使用pushState时通知您。你可能想为replaceState做类似的事情。
如果您需要在URL发生任何变化时收到通知,上面的一些组合和一个hashchange处理程序将为您提供最大的帮助。