Skip to content
📈0️⃣

兄弟页面交互

验证方式

在页面 1 中, 利用 window.open 打开页面 2, 并调用页面 2 的方法/数据

在页面 2 中, 收到页面 1 触发的方法/数据后, 执行并返回数据

实战演示参考 兄弟页面交互-兄弟1-实战

window.open 扩展

在通过window.open(url)打开的新页面中,可以通过window.opener属性获取到原来的窗口(即打开新页面的窗口)。

当使用window.open()方法打开一个新窗口时,新窗口会有一个opener属性指向打开它的原始窗口。这意味着,如果从 A 页面打开了 B 页面,那么在 B 页面中可以通过window.opener来访问 A 页面的 window 对象。这样,B 页面就可以读取 A 页面的数据,或者调用 A 页面的方法等。

例如,假设在 A 页面中使用了如下代码打开 B 页面:

javascript
var newWindow = window.open("https://www.example.com/b");

那么,在 B 页面中,可以通过以下方式获取到 A 页面的 window 对象:

javascript
var originalWindow = window.opener;

需要注意的是,由于同源策略的限制,如果 A 页面和 B 页面不是同源(即协议、主机或端口不同),则 B 页面将无法访问 A 页面的 window 对象。此外,一些浏览器的弹出窗口拦截器也可能阻止window.opener的使用。

总的来说,通过window.opener属性,可以在新打开的页面中获取到原始窗口的引用,从而实现两个窗口之间的交互。