【发布时间】:2017-09-26 22:49:46
【问题描述】:
当我打电话时
window.open("aPageInMyApp","MsgWindow")
我的 EventListener 有时会触发,有时不会。
@HostListener('window:beforeunload') logout(){//some code}
【问题讨论】:
标签: javascript angular window.open onbeforeunload
当我打电话时
window.open("aPageInMyApp","MsgWindow")
我的 EventListener 有时会触发,有时不会。
@HostListener('window:beforeunload') logout(){//some code}
【问题讨论】:
标签: javascript angular window.open onbeforeunload
这样做的原因是,如果你在打电话
window.open("aPageInMyApp","MsgWindow")
从您打开的窗口内部,window.name 将是相同的。这将导致浏览器尝试刷新该选项卡。然后它将触发 beforeunload。为了防止这种情况,而不是使用“MsgWindow”,请使用不会重复的动态来确保窗口的名称永远不会相同。使用A typescript Guid class? 之类的解决方案即时生成内容。
window.open("aPageInMyApp", Guid.newGuid())
这将确保您永远不会尝试在同一个窗口中打开同一个窗口。
【讨论】: