angular监控页面关闭,页面关闭或浏览器关闭时清除token,但刷新浏览器保留token
项目要求关闭页面时,清除登录状态。onunload 和onbeforeunload 都可以做到监控页面关闭,但副作用是无法区分是关闭页面还是刷新页面。下面方法可以解决区分刷新还是关闭的问题:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.less'],
})
export class AppComponent implements OnInit {
constructor() {}
_beforeUnload_time = 0;
_gap_time = 0;
ngOnInit(): void {
window.onunload = () => {
this._gap_time = new Date().getTime() - this._beforeUnload_time;
if (this._gap_time <= 5) {
localStorage.removeItem('token');
localStorage.removeItem('userId');
}
};
window.onbeforeunload = () => {
this._beforeUnload_time = new Date().getTime();
};
}
}
当然了,此方法对ie无效