Js 中窗口之间交互用到的父窗口有两两种表示方式:opener 和Parent。
他们有什么区别呢?
一、定义
opener即谁打开我的,比如A页面利用window.open弹出了B页面窗口,那么A页面所在窗口就是B页面的opener,在B页面通过opener对象可以访问A页面。
parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的parent。
注意:在JS中,window.opener只是对弹出窗口的母窗口的一个引用。比如:a.html中,通过点击按钮等方式window.open出一个新的窗口b.html。那么在b.html中,就可以通过window.opener来引用a.html,包括a.html中document等对象达到操作a.html内容的目的。假如这个引用失败,那么将返回null。所以在调用opener的对象前,要先判断对象是否为null,否则会出现“对象为空或者不存在”的JS错误。
二、示例
//父页面:
<html>
< body>
< form. name=form1>
< input type=“tex”t id="name" name=“test” >
< input type="button" >
< /form>
< /body>
< /html>
JS代码
//父窗口JS代码:
document.onclick = function ()
{
window.open(open('zichuangkou.html','baidu');//打开子页面,命名为baidu
}
子窗口的JS代码:
document.onclick = function ()
{
opener.document.
getElementById("name").value=('子窗口');//通过子窗口操作父窗口,在父窗口中写“子窗口”
}
//Opener__指的是打开当前窗口的窗口(父窗口),Self——当前窗口