首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何知道用户是否在卸载对话框之前单击了退出Javascript?

如何知道用户是否在卸载对话框之前单击了退出Javascript?
EN

Stack Overflow用户
提问于 2018-09-25 17:30:07
回答 1查看 316关注 0票数 0

我有一个AngularJS应用程序。在这里,我使用以下代码让用户确认他们是否真的想要离开应用程序:

代码语言:javascript
复制
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调用仍然可以进行?

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 06:55:25

我唯一能想到的就是利用angular的"$on“

代码语言:javascript
复制
     $scope.$on('destroy', function() {
         someService.hitThatRestAPI();
         // I didn't add a ".then" to the end since they're already off the page
     })

如果有效,请让我知道!我很好奇。

我假设你使用angularjs,因为你有一个angularjs标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52494868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档