我正在使用推送状态构建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浏览器中也会触发页面加载,因此一种快速的方法是检查事件是否为null。
if(event.originalEvent.state!=null){
    // do something
}

另一个好的资源是History.js jQuery插件,它具有使用标签等的后备功能。这也使对popstate事件的检测非常简单。

10-05 20:59
查看更多