是否有任何条件只有在javascript中按下浏览器关闭(x)时才能检测到?

时间:2016-03-09 04:58:04

标签: javascript jquery

我正在使用beforeunload函数,它工作正常但如果我按下我的页面中的任何按钮或链接也会触发。只按下关闭(x)按钮时触发事件的方法是什么?我的代码:

window.addEventListener("beforeunload", function (e) {
    $.ajax({
        url: 'logout.php',
        type: 'POST',
        async: false,
        timeout: 4000
    });
});

2 个答案:

答案 0 :(得分:3)

无法在关闭,刷新,表单提交或链接印刷之间区分100%。如果您真的需要这个,可以根据以下结果估算结果:

  • 光标的位置。如果它位于Mozilla或Chrome的右上角,则意味着按下了X. Safari的左上角等

  • 可能会将点击事件添加到所有<a>个html标记,以将FLAG设置为true。

  • <form>等其他类似标签相同,可以将用户重定向到其他网站。

  • 抓住按键事件以查找按键F5。

即便如此,你也无法确定。如果使用只是关闭标签,或者他点击重新加载按钮你可能会弄错,但至少给你一个近似值。

答案 1 :(得分:3)

截至2016年初,无法检测到这些行为。