是否有任何方法可以检测用户是否按下“按钮”;停留在页面上”;或“;离开页面"在beforeunload事件中

Is there any way to detect if user pressed "Stay on page" or "Leave page" in beforeunload event?

本文关键字:是否 离开 quot 事件 beforeunload 任何 用户 按钮 停留在 方法 检测      更新时间:2023-09-26

在下面的代码中,有没有任何方法可以检测到用户单击了"离开页面"或"停留在页面上"按钮?

$(window).on('beforeunload', function (){
    return "You save some unsaved data, Do you want to leave?";
});

通过一些技巧,您至少可以确定用户是否留下来
如果用户离开了页面,你对此无能为力:

var timeout;
$(window).on('beforeunload', function (){
    timeout = setTimeout(function() {
        // user stayed, do stuff here
    }, 1000);
    return "You save some unsaved data, Do you want to leave?";
});

FIDDLE

iirc,当用户决定留在页面上时,不会触发卸载事件。所以:

$(window).on('unload', function (){
    // user has left the page, do stuff here
}