JS 使用window.parent、window.top、window.self 判断iframe 嵌套

首先介绍 window.self,window.top,window.parent,window.opener四个的作用区别;

window.self,window.top 是打开模式,而 windo.parent,window.opener 是父页面的打开模式。

如果页面中有iframe或者framese时,parent是父窗口,top是最顶级父窗口(如果窗口中存在多层嵌套),self是当前窗口,opener是用open方法打开当前的窗口。

window.self

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

语法:window.self

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

window.parent

功能:返回父窗口。

语法:window.parent

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

window.top

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

语法:window.top

注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用;如果窗口仅在一层iframe中,top属性与parent属性等价。

通过window.parent ,window.top,window.self可以分别获取当前窗口、父窗口、顶层窗口的对象引用,我们可以使用这三个对象判断是否应用有iframe嵌套或者是否有多层iframe嵌套或实现其它功能。

举例如下:

1、 if(window.top===window.self){

        // 当前窗口为顶级窗口,没有iframe应用

} else{

    //存在iframe应用

}

2、if((window.top === window.parent)||(window.top!=window.self)){

     //父窗口为顶级窗口,只有一层iframe嵌套

} else{

   //父窗口不是顶成窗口,存在多层iframe嵌套

}

3、使用不同对象的location. href实现嵌套中指定窗口的跳转;使用不同对象的location. reload()实现嵌套中指定窗口的刷新。

参考:http://blog.csdn.net/u012316120/article/details/51595491

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值