如何区分Stay On Page和Leave Page

时间:2016-07-13 12:22:19

标签: javascript browser dom-events

在JavaScript中执行beforeunload事件并弹出警告框时,是否可以获取点击按钮的信息?

1 个答案:

答案 0 :(得分:1)

您不能直接执行此操作,因为onbeforeunload要求浏览器创建对话框并且不会告诉您返回值,但您可以使用您在事件中设置的全局变量例如,通过setInterval进行检查。

JSFiddle

var confirmUnload = false;

window.addEventListener("beforeunload", function(event) {
    confirmUnload = true;
    event.returnValue = "Really leave?";
});

window.addEventListener("unload", function(event) {
    console.log("User left");
});

setInterval(function(){
    if(confirmUnload) {
        confirmUnload = false;

        setTimeout(function() {
            console.log('Still here');
        }, 500);
    }
}, 400);