2017-02-10 8 views
1

私は、私のWebアプリケーションからの偶発的な終了を防ぐためのコードを書いています。角2、バインディングpageshowイベント

@HostListener('window:beforeunload', ['$event']) 
leaving($event) { 
    this.router.navigateByUrl('/home'); 
    return false; 
} 

@HostListener('pageshow',['$event']) 
safari(e) { 
    if (e.persisted) { 
     window.location.reload(); 
    } 
} 

最初beforeunloadリスナーが正しく動作し、終了したり再ロードされてからページを防ぎ、自宅にユーザーを押して、エッジケースを処理します。 2番目のpageshowは、ユーザーがナビゲートした場合を処理し、Safariのバック/フォワードボタンを使用して再入力します。これは、Chromeとは異なるキャッシングとナビゲーションを処理するためです。

イベントは決して発生しません。いずれのブラウザでも、私はバインディングに何か問題がありますか?

答えて

1

私はあなたが窓のリスナーを添付していると思う:@HostListener('window:pageshow', ['$event'])

関連する問題