【发布时间】:2018-09-25 09:30:06
【问题描述】:
我有一个 AngularJS 应用程序。在那里,我使用以下代码让用户确认他们是否真的想离开应用程序:
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
return 'Do you really want to leave?'
});
window.addEventListener('unload', function (e) {
console.log('unload');
myRestService.close();
e.preventDefault();
e.returnValue = '';
});
第一部分效果很好。浏览器显示消息框,用户必须在其中决定是离开还是留在页面上。
但是,如果用户想要离开页面(单击离开按钮),我必须调用 REST 后端。为此,我认为我还可以注册用户实际离开页面时触发的卸载事件。但是,当用户导航到另一个页面或关闭浏览器时,不会触发该事件,或者至少我看不到它。
我怎样才能捕捉到这些事件并确保我的休息呼叫仍然通过?
【问题讨论】:
-
有很多类似的问题——你不能
-
除非有未保存的数据,否则不要使用这些事件(这对用户来说非常烦人)。而是保存数据,因为它们已准备就绪。
标签: javascript jquery angularjs dom-events onbeforeunload