使用History.js时,如何检测单击的后退/前进按钮?
我在我的代码中使用带有jQuery的History.js( 单击 )。
通过ajax加载新内容时,我使用:
History.pushState({my:stateobject},"newtitle","supernewurl");
这似乎有效,因为URL在浏览器中更新。
但是,无论何时按下后退或前进按钮,我都无法连接我的代码。 使用哪种方法/事件?
您需要将事件处理程序绑定到statechange
事件,如下所示:
$(window).bind('statechange',function(){ // Do something, inspect History.getState() to decide what })
History.js附带了一个完整的JavaScript代码段,可用于完全“ajaxify”一个网站: https : //github.com/browserstate/ajaxify
看看那里有更多的灵感。
您不会捕获后退单击事件 ,因为没有。
您要做的是使用window.history.pushState
, window.history.popState
, window.history.replaceState
方法确保history
对象处于正确的状态。
https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
我能够使用“onPopState”事件来触发我的自定义AJAX代码。
window.onpopstate = function(event) { $(fellowModal).foundation('reveal', 'close'); };
我尝试了其他几件事,这对我有用。