0
當我打電話Window.open被燒成beforeunload
window.open("aPageInMyApp","MsgWindow")
我的事件監聽被解僱,有時,有時事實並非如此。
@HostListener('window:beforeunload') logout(){//some code}
當我打電話Window.open被燒成beforeunload
window.open("aPageInMyApp","MsgWindow")
我的事件監聽被解僱,有時,有時事實並非如此。
@HostListener('window:beforeunload') logout(){//some code}
這樣做的原因是,如果你在呼喚
window.open("aPageInMyApp","MsgWindow")
從您打開,window.name將是相同的窗口內。這將導致瀏覽器嘗試刷新該選項卡。然後,這將會啓動beforeunload。爲了防止出現這種情況,而不是使用「MsgWindow」,請使用動態的,不會重複的動作,以確保窗口的名稱永遠不會相同。使用像A typescript Guid class?這樣的解決方案即時生成某些內容。
window.open("aPageInMyApp", Guid.newGuid())
這將確保您永遠不會試圖在同一個窗口中打開同一個窗口。