Получить ответ пользователя на событие beforeunload, если пользователь покидает домен - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть приложение 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, которое запускается, когда пользователь фактически покидает заднюю часть.Это работает, если пользователь перезагружает спину или переходит на другой URL в приложении.Однако событие не запускается, или, по крайней мере, я его не вижу, когда пользователь переходит на другую страницу или закрывает браузер.

Как я также могу перехватить эти события и убедиться, что мой вызов остальныхвсе еще проходит?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете вызвать функцию перед закрытием вкладки следующим образом:

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

и теперь вы можете использовать все остальные API в функции закрытия

для получения более подробной информации, а другие методы следуют эта ссылка

...