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

3

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

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

除了以下情况,它运行得非常好:例如,用户点击了错误的链接并按下 Esc (或单击浏览器的“停止”按钮)取消导航。结果,加载模态框不会消失,他将不得不更新页面才能使用网站。
我想知道当用户取消卸载或导航时的情况。只需要类似这样的东西:
window.onunloadcancelled = function() {
    w.modalForms.loading.hide();
}

怎样才能做到这一点?
1个回答

0
也许你可以尝试一下超时,一旦请求新网页被触发。没有跨浏览器的解决方案可以检测到用户按下停止按钮的情况。
对于 esc 键,你可以捕获事件并移除


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

});

显示模态框后,您可以开始监视 ESC 键,然后删除 keyup 的侦听器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接