如何在jquery中检测浏览器的后退按钮,如果有任何对话打开关闭它?

时间:2016-05-12 10:50:20

标签: javascript jquery

我想要做的是,如果我在打开任何其他弹出窗口时按下后退按钮,我应该关闭该弹出窗口并重新加载页面。

我在下面尝试过。但它只是采用键盘后退按钮而不是浏览器后退按钮。任何人都可以帮我解决这个问题

$(document).ready(function() {

     $(document).bind("keydown keypress", function(e){
            if( e.which == 8 ){ // 8 == backspace
                alert("back button");
            }
        });
}

2 个答案:

答案 0 :(得分:1)

用于检测浏览器并关闭弹出窗口的代码段。

var path = 'pageURL';
history.pushState(null, null, path + window.location.search);
window.addEventListener('popstate', function (event) {
    //Code to close the pop up
    history.pushState(null, null, path + window.location.search);
});

答案 1 :(得分:0)

如果您希望它停止导航到此:

$(document).bind("keydown", function(e) {

    // if a object has focus
    // inputs, textarea, etc.
    if($(":focus").length != 0) {
        return;
    }

    // else don't allow the press
    if(e.keyCode == 8) {
        parent.postMessage("message");
        window.close();
        e.preventDefault();
    }
});

对我而言,它会捕获并禁用浏览器。您可以使用postMessage

在窗口之间进行通信

有关Windows之间通信的更多信息。 https://davidwalsh.name/window-iframe