javascript - 页面离开事件和后退按钮之前

标签 javascript browser dom-events browser-history

我试图在离开页面之前绑定(bind)一个事件,但按下后退按钮时除外。 这是我的事件代码:

    window.onbeforeunload = (e) => {

    if(something){
        // do my custom code
    }
};

它可以工作,但是当按下后退按钮时它会绑定(bind)。当然,这是正常的逻辑,但我需要找到一种方法来检查,是否在 onbeforeunload 内按下了后退按钮。像这样的事情:

if(something && !isBackButton){
        // do my custom code
}

最佳答案

我认为onbeforeunload更适合您的情况。您可以查看intercept-page-exit-event

$(document).ready(function() {
    isBackButton = false; 
    window.onbeforeunload = backHandler;
});

function backHandler() {
    if (isBackButton) {
        // do something's
    }
}

$("button.back").click(function() {
    isBackButton = true;
});

上面的代码检查 isBackButton 变量,如果它为 true,那么它将执行您的代码。每当单击后退按钮值发生更改时,isBackButton 变量就会设置为 true。

关于javascript - 页面离开事件和后退按钮之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61288471/

相关文章:

JavaScript - if 语句中 "Or"的简写

JavaScript 矩形在菜单中跟随光标

html - 浏览器对 UTF-8 符号的支持

javascript - 根据背景图像大小调整 div 大小的脚本——在 Firefox 中不起作用

javascript - 多个 Onclick 事件 - 2 个事件中的 1 个正在运行

javascript - removeEventListener 的行为

javascript - 从图 block ID 获取 X 和 Y 坐标

javascript - 对表中的行进行排序

javascript - 如何在 Safari 浏览器中设置 cookies

browser - Safari 找不到服务器。网站在所有其他浏览器上都正常