按下后退按钮时的Jquery

15 browser jquery back

我点击一下即可更改页面上的内容.我想知道当你按下浏览器上的后退按钮时是否有办法触发效果

use*_*135 17

您可以使用popstate事件来执行此操作:

window.onpopstate = function() {
  alert("pop!");
}
Run Code Online (Sandbox Code Playgroud)

或者在jQuery中:

$(window).on('popstate', function(event) {
 alert("pop");
});
Run Code Online (Sandbox Code Playgroud)

然而,这也将在向前导航时触发,而不仅是向后导航.

  • 但是,我不知道在我来回页面几次后它不起作用(使用Chrome,Firefox) (2认同)

Sak*_*hik 8

禁用回网址

$(function() {
    if (window.history && window.history.pushState) {
        window.history.pushState('', null, './');
        $(window).on('popstate', function() {
            // alert('Back button was pressed.');
            document.location.href = '#';

        });
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 这是一个伟大的黑客。但是在`document.location.href = '#';`上给出了“最大堆栈大小超出”错误 (2认同)

小智 5

使用此代码来检测浏览器后退按钮事件

<script>
    if (performance.navigation.type == 2) {
        alert("Back button clicked");
    }
</script>
Run Code Online (Sandbox Code Playgroud)