浏览器后退和前进按钮事件,没有jQuery插件

Kei*_*les 1 javascript

我希望能够在用户单击浏览器的“后退”和“前进”按钮时添加某些行为。

有没有办法用JavaScript这样说:

backButton.onclick = function() {
// do something
}

forwardButton.onclick = function() {
//do something else
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以直接使用JavaScript 而不依赖任何插件?

Dim*_*zov 5

window.addEventListener("popstate", function(e) { // if a back or forward button is clicked

// do whatever

}
Run Code Online (Sandbox Code Playgroud)

不过,仅在启用HTML5的浏览器中有效。

要获得其他浏览器支持,请查看History.js

  • 效果很好,我很快在代码中实现了它。但是,如何区分后退按钮和前进按钮呢?尝试检测到这一点,每次单击“后退”和“前进”时,我都会在控制台中显示“ e”对象。那么在这两种情况下,此对象的唯一区别是e.state的内容-对象或null。尽管我对此表示怀疑,但我不得不问-这是否表示按钮之间存在差异? (4认同)