防止 window.open() 刷新窗口

Kwn*_*sos 5 javascript google-chrome

我希望你很棒!可能有人对此有所了解

用例

  1. 页面 A 使用 window.open() 打开页面 B

  2. 刷新页面 A 并尝试再次使用 window.open() 聚焦页面 B。

代码

if (!window.memwin || window.memwin.closed) {
    window.memwin = window.open(URL, "windowName", "",true)
}
window.memwin.focus();
Run Code Online (Sandbox Code Playgroud)

问题

焦点发生在页面 B 上,但页面已重新加载。有什么方法可以克服这个问题吗?我希望页面 B 无需重新加载即可获得焦点。

*(如果页面 A 未重新加载,则使用 window.open() 将焦点移至页面 B 将不会重新加载页面 B)

Kwn*_*sos 0

看来有办法解决这个问题。

  • 在 cookie 中,我保存窗口的状态(打开/关闭)

  • 用它来创建窗口

window.open(URL, "windowName", "",true)
Run Code Online (Sandbox Code Playgroud)
  • 使用它可以将焦点重新集中到窗口上
window.open('', "windowName", "",true)
Run Code Online (Sandbox Code Playgroud)

通过这样做,用户将能够从任何地方聚焦页面 B。我们唯一需要知道的是 windowName 以及它是否仍然打开或关闭