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

标签 javascript jquery onbeforeunload

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

这是一个例子(我正在使用 jquery,因为它无论如何都会被加载):

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

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

$(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;
});

我不知道我在这里尝试做的事情是否可行...谷歌搜索并没有给我任何指示,所以我求助于我最喜欢的专家组!

知道我该怎么做吗?

谢谢!

最佳答案

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

beforeunload 事件未完成的方式是当用户单击“留在页面”按钮而不是“离开页面”时(如果向他们显示该对话框,就像在您的代码中一样) ).

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

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

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

关于javascript - 使用 onbeforeunload 确认时是否可以捕获用户的回答?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883127/

相关文章:

javascript - 通过 POST 重定向 - Firefox 中没有任何反应

javascript - 无法在页面离开 "onbeforeunload"事件中获取自定义消息警报

javascript - 如何为每个具有附加数字的 id 的元素使用 Javascript 函数

javascript - jQuery slideToggle 并滚动到底部

javascript - 使用 localStorage 存储和检索 PNG 时的空白图像

javascript - jQuery slider 按钮通过数据选择器显示

javascript - JQuery/dirty forms/window.onbeforeunload 仅在链接选择后触发

javascript - 点击提交时不显示 onbeforeunload 警报

javascript - 使用 useState 后控制台记录状态不返回当前值

javascript - 使用 ASP.NET MVC 和 jQuery 渲染部分 View /提交表单而无需刷新页面