javascript - 如何知道用户何时取消页面卸载

标签 javascript jquery dom-events onbeforeunload

当用户尝试导航到另一个页面时,我的网站会显示带有加载器动画的自定义模式窗口:

window.onbeforeunload = function() {
    w.modalForms.loading.show(true); // true stands for permanent
};

除了以下情况外,它的效果很好:例如,用户单击了错误的链接并按了Esc(或单击了浏览器的“停止”按钮)以取消导航。因此,加载模式不会消失,他必须更新页面才能使用该网站。

我想知道用户何时取消卸载\导航离开。
就像这样:

window.onunloadcancelled = function() {
    w.modalForms.loading.hide();
}

我怎样才能实现这个目标?

最佳答案

一旦对新网页的请求被触发,也许您应该尝试超时。没有跨浏览器解决方案可以检测用户何时点击停止按钮。

对于esc键,可以捕获事件并移除

$(document).keyup(function(e) {
 if (e.keyCode == 27) {
     w.modalForms.loading.hide();
}

});

显示模态后您可以开始观察 ESC 键。然后删除keyup的监听器

关于javascript - 如何知道用户何时取消页面卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433037/

相关文章:

javascript - 防止更改 Jquery 中的文本框值

javascript - 光标在哪个 TextBox 中?

javascript - HTML5 dragend 事件立即触发

用于显示纯 PDF 文件的 JavaScript 代码

javascript - 如果使用 jQuery 按下某些键

javascript - addEventListener 在 Angular 选择中不起作用

javascript - 如何在同一区域延迟加载图像以使其看起来像动画?

javascript - 第二次悬停后显示工具提示

javascript - 在哪里包含 JS 文件 - 这重要吗?

javascript - 如何使用 KineticJS 避免事件滞后?