您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何通过history.pushState获得有关历史更改的通知?

如何通过history.pushState获得有关历史更改的通知?

该 导航到会话历史记录条目时,事件在某些情况下被解雇。

据此,当您使用时,没有理由触发popstatepushState。但是这样的事件pushstate会派上用场。因为history是宿主对象,所以您应该小心使用它,但是在这种情况下,Firefox看起来不错。这段代码可以正常工作:

(function(history){
    var pushState = history.pushState;
    history.pushState = function(state) {
        if (typeof history.onpushstate == "function") {
            history.onpushstate({state: state});
        }
        // ... whatever else you want to do
        // maybe call onhashchange e.handler
        return pushState.apply(history, arguments);
    };
})(window.history);





window.onpopstate = history.onpushstate = function(e) { ... }

您可以window.history.replaceState用相同的方式修补猴子。

注意:当然,您可以onpushstate简单地将其添加到全局对象,甚至可以通过以下方式使它处理更多事件:add/removeListener

其他 2022/1/1 18:20:19 有559人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶