使用History.js时,如何检测单击的后退/前进按钮?

时间:2012-07-07 23:16:21

标签: jquery history.js

我在我的代码中使用了History.js(click)和jQuery。

通过ajax加载新内容时,请使用:

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

这似乎有效,因为在浏览器中更新了URL。

但是,无论何时按下后退或前进按钮,我都无法连接我的代码。使用了哪种方法/事件?

3 个答案:

答案 0 :(得分:9)

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

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

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

看看那里有更多的灵感。

答案 1 :(得分:4)

你不会捕获后退点击事件,因为没有。

您要做的是使用historywindow.history.pushStatewindow.history.popState方法确保window.history.replaceState对象处于正确状态。

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

答案 2 :(得分:2)

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

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

我尝试了其他几件事,这对我有用。