如何检测使用History.js当被点击后退/前进按钮?(How can I detect the

2019-06-26 03:29发布

即时通讯使用History.js( 点击我的代码中)与jQuery。

当通过AJAX加载新的内容,我使用:

History.pushState({my:stateobject},"newtitle","supernewurl");

这似乎工作,因为URL在浏览器更新。

不过,我不明白这一点,其中,每当按下后退或前进按钮,我可以连接我的代码。 哪种方法/用于这个事件?

Answer 1:

您需要一个事件处理程序绑定到statechange事件,如下所示:

$(window).bind('statechange',function(){
// Do something, inspect History.getState() to decide what
})

有附带History.js一个完整的JavaScript代码,它可以用来“ajaxify”完全网站: https://github.com/browserstate/ajaxify

看看有没有更多的灵感。



Answer 2:

你不会捕捉后单击事件 ,因为是没有的。

你想要做的就是确保history对象是在正确的状态,通过使用window.history.pushStatewindow.history.popStatewindow.history.replaceState方法。

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history



Answer 3:

我能够使用“onPopState”事件来触发我的自定义Ajax代码。

window.onpopstate = function(event) {
  $(fellowModal).foundation('reveal', 'close');
};

我尝试了其他几件事情,这是对我工作。



文章来源: How can I detect the back/forwards buttons being clicked when using History.js?