2017-08-15 58 views
0

我試圖將用戶重定向到一個特定的URL上後退按鈕在瀏覽器中點擊一下,這裏是代碼後退按鈕事件不會觸發角

constructor(private router: Router,private location: PlatformLocation) {   
     let eventUrl = window.sessionStorage.getItem('Event'); 
     this.location.onPopState(() => { 
      alert('click'); 
      this.router.navigate(['/', this.selectedLanguage, 'event', eventUrl]); 
     }); 
    } 

,但它似乎不火當用戶點擊後退按鈕時發生的事件。代碼位於當前組件中。有什麼問題?

編輯

我用下面的答案試着建議,但也似乎並不工作,該函數獲取調用,但它仍然重定向到前一頁,而不是下面

提到的網址
unload(event: any) { 
     let eventUrl = window.sessionStorage.getItem('buyerEvent'); 
     this.router.navigateByUrl('/' + this.selectedLanguage + '/event/' + eventUrl); 
    } 
+0

爲什麼在構造函數裏面的後退按鈕的代碼? –

+0

這是瀏覽器的後退按鈕 – Sajeetharan

+0

對不起,我的手機沒有正確讀取它 –

回答

2

可以綁定你想要做的事情時將應用程序留給window.unload事件。在這裏我使用了HostListener

@HostListener('window: unload', ['$event']) 
unload(event) { 
    window.open('https://localhost:4200', '_blank'); 
    window.close(); 
} 

提的是Chrome瀏覽器將默認阻止window.open,你必須改變封鎖政策。

+0

@Sajeetharan我剛剛在我的本地應用程序確認,它工作正常。順便說一句,我通過在'AppComponent'處定位上面的代碼來測試,但我認爲這應該不重要。 – Pengyy

+0

函數正在被調用,但它不會重定向到不同的url。它返回到這個例子中的前一個條帶窗口 – Sajeetharan

+0

@Sajeetharan'window.open'將在新標籤中打開不同的url,'window.close'將關閉當前標籤頁。這是針對你的具體要求。 – Pengyy

-1

我使用地點

Import { Location } from '@angular/common'; 

聲明對構造

constructor(private _location: Location){} 

,並進行功能

backClicked() { 
    this._location.back(); 
} 

然後將其設置成按鍵

<button (click)="backClicked()"> TEAM FALL BACK</button> 

然後觀看魔術發生......

+0

按鈕是瀏覽器的一個 – Sajeetharan

+0

this.checkRouter.navigateByUrl('/');所以請嘗試navigateByUrl到您的代碼 –

+0

對不起,我沒有正確閱讀 –

相關問題