Window.open在beforeunload之前触发

时间:2017-09-26 22:49:46

标签: javascript angular window.open onbeforeunload

当我打电话

window.open("aPageInMyApp","MsgWindow")

我的EventListener有时会触发,有时则不会。

@HostListener('window:beforeunload') logout(){//some code}

1 个答案:

答案 0 :(得分:0)

原因是,如果你打电话

window.open("aPageInMyApp","MsgWindow")

从您打开的窗口内部,window.name将是相同的。这将导致浏览器尝试刷新该选项卡。然后,这将触发前载。为了防止这种情况而不是使用" MsgWindow"使用不会重复的动态,以确保窗口的名称永远不会相同。使用A typescript Guid class?之类的解决方案即时生成内容。

window.open("aPageInMyApp", Guid.newGuid())

这将确保您永远不会尝试在同一窗口中打开同一个窗口。