使用onbeforeunload确认时是否可以捕获用户的答案?

Gab*_*iel 5 javascript jquery onbeforeunload

我需要提醒用户,他们在离开页面时会丢失信息.使用onbeforeunload事件可以轻松完成此操作.我的问题是,如果用户决定离开,我想采取一些行动.

这是一个例子(我正在使用jquery,因为它仍然被加载):

$(window).on('beforeunload', function(e){
    return "Do you really want to leave?";
});
Run Code Online (Sandbox Code Playgroud)

我想做的是这样的事情(这段代码不起作用,我知道,这只是一个例子来说明我正在尝试做什么):

$(window).on('beforeunload', function(e){
    // Ask for user confirmation
    var bUserAnswer = confirm("Do you really want to leave?");

    if(bUserAnswer)
    {
        // Do something...
    }
    else
    {
        // Do something else...
    }
    // Close everything if the user decides to leave...
    return bUserAnswer;
});
Run Code Online (Sandbox Code Playgroud)

我不知道我在这里想要做什么甚至是可能的......谷歌搜索并没有给我任何指示,所以我转向我最喜欢的专家组!

知道怎么做吗?

谢谢!

Ian*_*Ian 10

离开页面时,按顺序执行事件beforeunloadunload执行.当然,如果beforeunload事件没有完成,unload事件就不会.

该方式beforeunload的事件没有完成是当用户点击"留在页面"按钮,而不是"离开页面"(如果该对话框呈现给他们,就像在你的代码).

因此,如果您知道他们不会离开页面的可能性将始终呈现给他们,则unload事件执行的唯一方法是如果beforeunload事件未被阻止(由用户).

因此,当用户实际选择在unload事件中离开页面时,您应该能够放置要执行的任何代码.

至于知道用户是否决定留在页面上,我不知道如何抓住它:)