无法引用现有窗口

Posted

技术标签:

【中文标题】无法引用现有窗口【英文标题】:Can't get reference to existing window 【发布时间】:2017-10-04 06:31:53 【问题描述】:

我需要在 Firefox 中获取当前页面未打开但具有相同协议、端口和主机的窗口的引用对象。所以符合同源政策。

我使用下面的代码来做到这一点:

var mainWindow = window.open('', ''MAIN_WINDOW');

这在 Firefox 52 之前有效,但是由于 52 更新,此代码仅打开一个新的空白选项卡,而不是引用当前打开的窗口。我查看了 52 版本中的修复程序,但看不到任何会直接影响此问题的内容。

在我想要引用的窗口中执行 console.log(window.name) 会返回“MAIN_WINDOW”。所以窗口名称是正确的。

然后,我稍后在代码中尝试访问窗口引用中的框架数组。有没有办法解决这个问题或我可以尝试的替代方法?

【问题讨论】:

您是在尝试打开新窗口而不是选项卡,还是您可以使用该选项卡,但如果该选项卡已打开,则需要获取参考? @Olga 第二个。所以标签已经打开了,我正在尝试获取它的参考 请提供示例代码,然后在新窗口中创建框架然后访问它们。 【参考方案1】:

如果窗口是同源的,您可以使用 BroadcastChannel 让单独的窗口或选项卡相互通信

【讨论】:

以上是关于无法引用现有窗口的主要内容,如果未能解决你的问题,请参考以下文章

引用的账户当前已锁定,且可能无法登录怎么办?

未定义对“JNI_CreateJavaVM”窗口的引用

Docker 错误无法删除 docker 容器,冲突:无法删除存储库引用

Netezza 从外部文件导入错误:不支持的外部表引用,无法导出形状

在表单提交时获得对 _blank 目标窗口的引用

对现有类的未定义引用