Window 对象中的parent属性——iframe子窗口访问父窗口

Window 对象

Window 对象表示浏览器中打开的窗口。
如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。

 

手中的一个项目包含iframe与父窗口的交互,之前的一个同事的调用一个基于jQuery组件的方法是

parent.$.functionName

 之前没太弄明白这么写的原因,待到需要自己来开发别的模块的时候,查了一下资料

 

window.parent→→返回父窗口

 

需要这么写的需求是,因为页面内嵌有一个iframe模块,而现在需要调用一个弹出窗体dialog,如果使用普通的调用方法,则窗体唤出仅仅存在iframe这一个小小的区域,展示的范围受限,不能完成的存在于整个屏幕。所以如果,在iframe的父级窗体,即大window里面唤出dialog的话,dialog的范围就扩大了,实现全屏。

 

按照这个思路,则需要回到父窗口来调用dialog,即window.parent,在函数体内,这个方法仍然是在iframe里面使用,调用父窗体的方法,从DOM结构而言,整个dialog已经超出iframe范围内,



 

对父窗体内容的选择

window.parent.$('#form')

 

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口。



window.self


功能:是对当前窗口自身的引用。它和window属性是等价的。

语法:window.self

注:window、self、window.self是等价的。



window.top

功能:返回顶层窗口,即浏览器窗口。

语法:window.top

注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。



window.parent

功能:返回父窗口。

语法:window.parent

注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。

在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。



判断当前窗口是否在一个框架中:

<script type="text/javascript">
var b = window.top!=window.self;
document.write( "当前窗口是否在一个框架中:"+b );
</script>

你应当将框架视为窗口中的不同区域,框架是浏览器窗口中特定的部分。一个浏览器窗口可以根据你的需要分成任意多的框架,一个单个的框架也可以分成其它多个框架,即所谓的嵌套框架。

 

 

文章参考自:

Js中的window.parent ,window.top,window.self 详解

ttp://blog.csdn.net/zdwzzu2006/article/details/6047632

Window 对象

http://www.w3school.com.cn/jsref/dom_obj_window.asp

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值