在iframe中使用window.open的唯一弹出窗口

Mic*_*les 15 javascript firefox

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

  • iFrame window.open在被销毁时表现得像那样吗?
  • 我尝试在本地运行iFrame源,即使刷新后窗口打开也能正常运行.
  • 我试过IE,Firefox和Chrome,它返回了相同的行为.

更新:

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

然而,迈克仍然没有运气与Firefox.如果有人可以为此工作,我将非常感激.

以下视频中具有sanboxed属性的iFrame的Webkit浏览器行为.

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

以下视频中具有sanboxed属性的iFrame的Firefox行为.

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

是否有一种解决方法可以让Firefox像Webkit浏览器一样工作?

更新:

Mike发现在window.open中使用空白URL在firefox中正常运行.但是仍然如何解决这个哈哈.

更新:

这是约翰尼!呃Mike意味着另一个测试案例.尝试使用webkit浏览器和firefox.打开弹出窗口后,刷新页面然后打开另一个弹出窗口webkit浏览器将只有一个窗口实例,但是firefox会创建一个新窗口. console.log(window.name)在打开的弹出窗口中,您将获得'Mike'作为窗口名称 https://bug1295839.bmoattachments.org/attachment.cgi?id=8782242