在 iframe 中使用 window.open 的独特弹出窗口

在 iframe 中使用 window.open 的独特弹出窗口

我有一个 iFrame,其中有一个打开的窗口(urluniqueIDwindowparams)。iFrame 位于单页应用程序上,并托管在另一台服务器上。每次我刷新或更改页面然后返回到 IFrame 页面,然后尝试启动相同的window.open。它不会刷新已打开的窗口,而是创建同一窗口的实例。在检查每个弹出窗口的 后,它返回与其window.name相同的。如果将 url 设置为空白,则其行为将按预期运行。但是当设置 url 时,它会创建窗口的新实例。uniqueIDwindow name

  • iFramewindow.open在被破坏时会有这样的行为吗?
  • 我尝试在本地运行 iFrame 源,即使刷新后,打开的窗口仍能正常运作。
  • 我在 IE、Firefox 和 Chrome 中尝试过,但返回了相同的行为。

更新:

Mike 通过为 iFrame 源添加沙盒属性成功修复了 Webkit 浏览器的行为。现在该window.open方法按预期工作,并且不会创建相同窗口的新实例window.name

然而,Mike 仍然无法使用 Firefox。如果有人能解决这个问题,我将不胜感激。

下面的视频中展示了具有沙盒属性的 iFrame 的 Webkit 浏览器行为。

看到父级即使刷新后仍然可以检测到已经打开了同名的弹出窗口。 https://youtu.be/z5_xXRjY8Ow

下面的视频中展示了具有沙盒属性的 iFrame 的 Firefox 行为。

当父窗口刷新时,浏览器无法检测到已经打开的弹出窗口,并使用相同的弹出窗口创建另一个实例window.namehttps://youtu.be/uHaDveW1Sd0

有没有办法让 Firefox 的行为像 Webkit 浏览器一样?

相关内容