您的位置:首页 > Web前端 > JavaScript

js中window.opener和parent区别

2014-03-18 18:28 393 查看
如果A窗口中调用js,window.open("B窗口");
那么在B窗口中调用js, window.opener可以得到A窗口。

parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的parent。在JS 中,window.opener只是对弹出窗口的母窗口的一个引用。比如:a.html中,通过点击按钮等方式window.open出一个新的窗口 b.html。那么在b.html中,就可以通过window.opener(省略写为opener)来引用a.html,包括a.html的 document等对象,操作a.html的内容。
假如这个引用失败,那么将返回null。所以在调用opener的对象前,要先判断对象是否为null,否则会出现“对象为空或者不存在”的JS错误。

如果一个frameset中有多个frame和framset,
在获取子frameset的时候,知道父frameset可以直接 .framset的name属性;
而且用. name属性的方式可以实现跨层获取。
例如:
<frameset rows="20,40,50" cols="*" name="main">
<frame src="" name="chid1"/>
<frame src="" name="child2"/>
<frameset rows="*" cols="50%,*" name="child3">
<frame src="a.html" name="child4"/>
<frame src="b.html" name="child5"/>
</frameset>
</frameset>
当在b.html中使用js获取child1时,可以parent.child1
当在b.html中使用js获取child4时,可以parent.child4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息