Angular 2,绑定pageshow事件

时间:2017-02-10 10:41:19

标签: google-chrome angular safari

我正在编写一些代码以防止意外退出我的网络应用程序。

 @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事件根本不会在任何一个浏览器上触发 - 我是否在绑定时出错?

1 个答案:

答案 0 :(得分:1)

我认为你有附加窗口监听器:@HostListener('window:pageshow', ['$event'])