兄弟页面交互
验证方式
在页面 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
属性,可以在新打开的页面中获取到原始窗口的引用,从而实现两个窗口之间的交互。