我有一个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 = '';
});
第一部分运行得很好。浏览器显示消息框,用户必须在其中决定是离开还是留在页面上。
但是,如果用户想要离开页面(单击leave按钮),我必须调用REST后端。为此,我认为我还可以注册当用户真正离开页面时触发的unload事件。但是,当用户导航到另一个页面或关闭浏览器时,事件不会触发,或者至少我看不到它。
我如何捕捉这些事件,并确保我的rest调用仍然可以进行?
发布于 2018-09-26 06:55:25
我唯一能想到的就是利用angular的"$on“
$scope.$on('destroy', function() {
someService.hitThatRestAPI();
// I didn't add a ".then" to the end since they're already off the page
})
如果有效,请让我知道!我很好奇。
我假设你使用angularjs,因为你有一个angularjs标签。
https://stackoverflow.com/questions/52494868
复制相似问题