javascript - 当这两个浏览器完全独立时,将 window.open 对象从一个浏览器传递到另一个浏览器

标签 javascript

我有一个要求,我通过 1 个窗口打开 2 个浏览器窗口。假设 A 打开 B 和 C。然后在其中一个子窗口(假设 B)中,我打开另一个窗口(假设 D)。现在,在这个新窗口 (D) 中,我想访问 C 的对象,以检查该窗口是打开还是关闭。

我可以用 javascript 做吗?

我知道您可以通过使用 window.open 和 window.opener 但这只适用于浏览器窗口具有父子关系的情况。但就我而言,这并没有发生。

任何帮助都将不胜感激。

最佳答案

是的,你可以。假设您的页面 A 像这样打开窗口 B 和 C:

var b = window.open("childB.html", "_blank");
var c = window.open("childC.html", "_blank");

然后你的窗口 b 是页面 childB.html 打开 windowd d

var d =  window.open("childD.html", "_blank")

childD.html 的 javascript 代码中,您可以放置​​代码:

var propC = opener.opener.c.propertyOfC;

opener.opener 将引用原始窗口 A,它可以引用 .c 及其所有对象

您将必须添加检查窗口/属性是否存在(很可能会按顺序进行 try/catch)

关于javascript - 当这两个浏览器完全独立时,将 window.open 对象从一个浏览器传递到另一个浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094078/

相关文章:

javascript - 变量在一个 JS 文件的多个 HTML 文件中持续存在的问题

javascript - 获取父级前一个div的属性值

javascript - 如何显示自某个日期以来的年、月、周和天

javascript - 在 Visual Studio 2015 中加载 MVC 5 项目时 $ 未定义

Javascript 用 8 和 9 替换字符串不起作用......但其他数字可以......?

javascript - 允许向对象添加和删除功能的设计模式

javascript - Vanilla JS 隐藏/显示 DIV 切换器

javascript - 通过 'this' 进行警报

javascript - 尝试 ES6 样式导入给出 'Cannot use import statement outside a module'

javascript - 如何在 Express 中使用 Underscore 模板代替 Jade?