Как я могу проверить, обновляется ли страница в событии beforeunload в angular5? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь поставить логику, когда пользователь закрывает браузер / вкладку, тогда мне нужно очистить локальную сессию.поэтому я использовал beforeunload событие.Проблема в том, что он вызывается как при закрытии браузера, так и при обновлении страницы.и мне не нужно очищать сессию при обновлении, она должна быть закрыта.Я пытался проверить только с помощью clientY и pageY, но у меня это не работает.Также я попытался с помощью приведенного ниже кода определить, будет ли браузер обновляться или нет, установить значение флага и использовать его в событии beforeunload.но он вызывается после beforeunload event

this.subscription = this.router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
 this.browserRefresh = !this.router.navigated;
  if(this.browserRefresh)
  {
   console.log("browserRefresh");
  }
  else
  {
   console.log(" else browserRefresh");
  }

}});

@HostListener('window:beforeunload', ['$event'])
    beforeunload($event) {

    console.log("clear session");

}

Пожалуйста, предложите, если я использую неправильное событие для задачи, или предложите мне правильный путь к этому.Я проверил несколько предложенных ссылок, но ничего не помогает.Спасибо

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете попробовать, как эта Надежда, чтобы она могла работать

@HostListener('window:unload', ['$event'])
    beforeunload($event) {

    console.log("clear session");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...