我正在使用推送状态构建一个
Html 5网站,我想知道它是否可能在javascript或
JQuery中检测浏览器的后退按钮是否被推送.我想把它包含在if语句中:
if (back_btn clicked){ //do stuff } if (forward_btn clicked){ }
解决方法
你正在寻找
popstate event.
一个例子:
window.onpopstate = function(event) { alert("location: " + document.location); }
或者随着jQuery的流行:
$(window).on('popstate',function(event) { alert("location: " + document.location); });
当历史记录被访问时,这将触发,例如向后/向前.一个快速的注意事项,在Chrome中,这也会在页面加载中触发,所以快速的方法是检查事件是否为空.
if(event.originalEvent.state!=null){ // do something }
另一个好的资源是History.js jQuery插件,它使用hashtag等等.它也使得检测到popstate事件非常简单.