是否有History.pushstate回调?(Is there a callback for Hi

2019-06-24 02:47发布

我的谷歌福拉什么。

当你这样做:

var stateObj = { state: "some state" };
history.pushState(stateObj, "page 2", "other.htm");

是否有相关的窗口回调?

我知道,有这样的:

window.onpopstate = function() {

}

伟大的工程聆听当用户点击后退按钮。 不过,我要听任何时候的URL都改变了,我不知道该怎么做。

是否有在任何时候更改网址的全球性回调?

Answer 1:

没有,有没有一个onpushstate或什么的。 然而,一只小猴子补丁可以解决这个问题:

var pushState = history.pushState;
history.pushState = function () {
    pushState.apply(history, arguments);
    fireEvents('pushState', arguments);  // Some event-handling function
};

使用pushState的时候这只会通知您。 你可能想把做replaceState类似的东西。

如果您需要通知每当URL在所有的变化,上述的一些组合和hashchange处理程序将让你大部分的方式存在。



文章来源: Is there a callback for History.pushstate?