当我打电话
window.open("aPageInMyApp","MsgWindow")
我的EventListener有时会触发,有时则不会。
@HostListener('window:beforeunload') logout(){//some code}
答案 0 :(得分:0)
原因是,如果你打电话
window.open("aPageInMyApp","MsgWindow")
从您打开的窗口内部,window.name将是相同的。这将导致浏览器尝试刷新该选项卡。然后,这将触发前载。为了防止这种情况而不是使用" MsgWindow"使用不会重复的动态,以确保窗口的名称永远不会相同。使用A typescript Guid class?之类的解决方案即时生成内容。
window.open("aPageInMyApp", Guid.newGuid())
这将确保您永远不会尝试在同一窗口中打开同一个窗口。