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

Joe*_*oey 8 jquery history.js

我在我的代码中使用带有jQuery的History.js(单击).

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

History.pushState({my:stateobject},"newtitle","supernewurl");
Run Code Online (Sandbox Code Playgroud)

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

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

jgi*_*oni 9

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

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

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

看看那里有更多的灵感.

  • 为什么这会被贬低?这是正确的事情......虽然我可能会做类似的事情:`History.Adapter.bind(window,'popstate',function(){$ modalContext.modal('close');});` (3认同)