我正在尝试在用户关闭浏览器/选项卡时放入逻辑,然后我需要清除本地会话。所以我用过beforeunload
事件。问题在于浏览器关闭以及页面刷新都被调用。而且我不必在刷新时清除会话,它应该关闭。
我尝试仅通过使用clientY
和pageY
进行检查,但对我来说不起作用。
我也尝试使用下面的代码来确定浏览器是否要刷新,并设置标志值并在beforeunload
事件中使用它。但在beforeunload
事件之后被调用
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");
}
请建议我是否为任务使用了错误的事件,或者为我建议了正确的方法。我检查了建议的几个链接,但没有任何帮助。 谢谢
答案 0 :(得分:0)
您可以尝试这样的Hope,这样它就可以工作
@HostListener('window:unload', ['$event'])
beforeunload($event) {
console.log("clear session");
}