当前位置:   article > 正文

Angular实现监听关闭浏览器,同时做进一步操作_为什么angular hostlistener监听不到beforeunload

为什么angular hostlistener监听不到beforeunload

需求:关闭浏览器同时实现退出登录,刷新页面不退出登录

背景:退出登录需要发送请求到后端,后端进行用户信息判断才可退出登录

由于Angular单页面的特性,所以拥有一系列的难点,例如使用:

import { HostListener } from '@angular/core';
  1. @HostListener('window:beforeunload', ['$event'])
  2. onWindowClose(event: any): void {
  3. // Do something
  4. event.preventDefault();
  5. event.returnValue = false;
  6. }

代码实现阻止浏览器关闭前的一个提醒操作,有个缺点就是刷新的同时也会触发,不符合需求。

于是网上查找一番,发现可通过以下方式实现需求:

  1. export class AppComponent {
  2. beginTime = 0;//Start time of executing onbeforeunload
  3. differTime = 0;//时间差
  4. @HostListener('window:beforeunload', ['$event'])
  5. onBeforeWindowClose(event: any): void
  6. {
  7. this.beginTime = new Date().getTime();
  8. }
  9. @HostListener('window:unload', ['$event'])
  10. onWindowClose(event:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/223075
推荐阅读
相关标签
  

闽ICP备14008679号