单击后退按钮时如何防止自动注销?

时间:2020-06-29 05:34:10

标签: javascript php jquery codeigniter

我正在使用代码在关闭浏览器时自动注销应用程序,但是代码的影响是当我按下浏览器的“后退”按钮并导航到另一个页面时,它也会从应用程序中自动注销。

我希望我的代码仅在关闭浏览器时自动注销,而不是在通过后退按钮导航时自动注销

这可以帮我吗,谢谢

这是我的代码

$(window).on('mouseover', (function () {
    window.onbeforeunload = null;
}));

$(window).on('mouseout', (function () {
    window.onbeforeunload = ConfirmLeave;
}));

function ConfirmLeave() {
    $.get("call to a php code to logout");
}

var prevKey="";
$(document).keydown(function (e) {
    if (e.key=="F5"){
        window.onbeforeunload = ConfirmLeave;
    }else if (e.key.toUpperCase() == "W" && prevKey == "CONTROL") {
        window.onbeforeunload = ConfirmLeave;
    }else if (e.key.toUpperCase() == "R" && prevKey == "CONTROL") {
        window.onbeforeunload = ConfirmLeave;
    }else if (e.key.toUpperCase() == "F4" && prevKey == "ALT") {
        window.onbeforeunload = ConfirmLeave;
    }
    prevKey = e.key.toUpperCase();
});

php代码是

$this->session->sess_destroy();
$this->load->driver('cache');
$this->cache->clean();
ob_clean();
redirect("login page");

1 个答案:

答案 0 :(得分:0)

onbeforeunload事件在我们关闭浏览器以及按返回按钮时发生。无法区分这两个动作。