如果用户离开域,则获取用户对beforeunload事件的响应

时间:2018-09-25 06:23:43

标签: angularjs events browser onbeforeunload window.onunload

我有一个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 = '';
});

这很好用,浏览器显示消息框,用户必须决定离开还是停留在页面上。但是,如果用户真的想离开该页面,那么我必须打电话给其余的后端。为此,我认为我也可以注册当用户实际离开时触发的unload事件。如果用户重新加载后页或导航到应用程序中的其他网址,则该方法有效。但是,当用户导航到以前的页面或关闭浏览器时,该事件不会触发,或者至少我看不到它。

我还如何捕捉这些事件并确保我的休息电话仍然畅通?

1 个答案:

答案 0 :(得分:1)

您可以像这样在制表符关闭之前调用函数:

$window.onbeforeunload = function (arg) {
  $scope.onclose();
}

现在您可以在关闭函数中使用所有其余的api

有关更多详细信息,请遵循其他方法this link