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

问题描述 投票:3回答:1

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

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

它在以下情况下非常有用:例如,用户单击了错误的链接并按Esc(或单击浏览器的“停止”按钮)以取消导航。结果,加载模式不会消失,他将不得不更新页面才能使用该网站。

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

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

我该如何实现?

javascript jquery dom-events onbeforeunload
1个回答
0
投票

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

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

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

});

您可以在显示模态后开始观看ESC键。然后删除监听器以进行keyup

© www.soinside.com 2019 - 2024. All rights reserved.