我正在编写一些代码以防止意外退出我的网络应用程序。
@HostListener('window:beforeunload', ['$event'])
leaving($event) {
this.router.navigateByUrl('/home');
return false;
}
@HostListener('pageshow',['$event'])
safari(e) {
if (e.persisted) {
window.location.reload();
}
}
第一个beforeunload
侦听器正常工作,阻止页面退出或重新加载,并通过将用户推送到主页来处理边缘情况。第二个pageshow
用于处理用户导航的情况,并通过safari上的后退/前进按钮重新输入,因为它以不同的方式处理缓存和导航Chrome。
pageshow
事件根本不会在任何一个浏览器上触发 - 我是否在绑定时出错?
答案 0 :(得分:1)
我认为你有附加窗口监听器:@HostListener('window:pageshow', ['$event'])