【问题标题】:Window.open is firing beforeunloadWindow.open 在卸载前触发
【发布时间】:2017-09-26 22:49:46
【问题描述】:

当我打电话时

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

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

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

【问题讨论】:

    标签: javascript angular window.open onbeforeunload


    【解决方案1】:

    这样做的原因是,如果你在打电话

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 2020-11-14
      • 1970-01-01
      • 2018-08-15
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多