Window.open 正在卸载前触发
Window.open is firing beforeunload
当我打电话给
window.open("aPageInMyApp","MsgWindow")
我的 EventListener 有时触发,有时不触发。
@HostListener('window:beforeunload') logout(){//some code}
这样做的原因是,如果您正在呼叫
window.open("aPageInMyApp","MsgWindow")
在您打开的 window 中,window.name 将是相同的。这将导致浏览器尝试刷新该选项卡。然后将触发 beforeunload。为了防止这种情况,而不是使用 "MsgWindow",请使用不会重复的动态内容,以确保 window 的名称永远不会相同。使用像 A typescript Guid class? 这样的解决方案来即时生成一些东西。
window.open("aPageInMyApp", Guid.newGuid())
这将确保您永远不会尝试在同一个 window 中打开同一个 window。
当我打电话给
window.open("aPageInMyApp","MsgWindow")
我的 EventListener 有时触发,有时不触发。
@HostListener('window:beforeunload') logout(){//some code}
这样做的原因是,如果您正在呼叫
window.open("aPageInMyApp","MsgWindow")
在您打开的 window 中,window.name 将是相同的。这将导致浏览器尝试刷新该选项卡。然后将触发 beforeunload。为了防止这种情况,而不是使用 "MsgWindow",请使用不会重复的动态内容,以确保 window 的名称永远不会相同。使用像 A typescript Guid class? 这样的解决方案来即时生成一些东西。
window.open("aPageInMyApp", Guid.newGuid())
这将确保您永远不会尝试在同一个 window 中打开同一个 window。