window.top、window.parent与window.opener的区别

top:

该变更永远指分割窗口最高层次的浏览器窗口。
如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。

parent:

该变量指的是包含当前分割窗口的父窗口。
如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。

opener:

指用window.open()等方式创建的新窗口对应的原窗口。对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null。self:自引用属性,是对当前window对象的应用,与window属性同义。 self代表自身窗口,opener代表打开自身的那个窗口,比如窗口A打开窗口B。如果靠window.open方法,则对于窗口B,self代表B自己,而opener代表窗口A。

IFrame与window对象(contentWindow)

IFRAME
IFRAME 元素也就是文档中的文档

window 对象
浏览器会在其打开一个 HTML 文档时创建一个对应的 window 对象。
但是,如果一个文档定义了一个或多个框架(即,包含一个或多个 frame 或 iframe 标签),浏览器就会为原始文档创建一个 window 对象,再为每个框架创建额外的 window 对象。这些额外的对象是原始窗口的子窗口,可能被原始窗口中发生的事件所影响。
例如,关闭原始窗口将导致关闭全部子窗口。如果想要创建新窗口(以及对应的 window 对象),可以使用像 open, showModalDialog 和 showModelessDialog 这样的方法。

contentWindow
contentWindow属性是指指定的frame或者iframe所在的window对象;
在IE中iframe或者frame的contentWindow属性可以省略,但在Firefox中如果要对iframe对象进行编辑则必须指定contentWindow属性。经测试firefox同样可以省略,可能是和火狐版本有关


frame框架的小案例:

主页面main.html,中有frameset包含的框架,包含两个frame:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Window和window区别</title></head><script type="text/javascript" src="js/jquery-3.2.1.js" ></script><script type="text/javascript">function parentFun() {alert("parentFun");}</script><frameset cols="15%,*"><frame src="leftTree.html" name="leftTree" id="leftTree" /><frame src="content.html" name="middle" id="middle" />          </frameset>
</html>

leftTree.html页面:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>左侧树</title></head><script type="text/javascript" src="js/jquery-3.2.1.js" ></script><script type="application/javascript">$(document).ready(function() {//获取同级的frame对象, "middle"为frame的id属性值var middleFrame = window.parent.window.frames["middle"];//调用同级frame中定义的函数middleFrame.middleFun();//调用父窗口的方法parent.window.parentFun();});</script><body><h1>左侧树</h1><img src="img/a.png"/></body>
</html>

content.html页面:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>主页面</title></head><script type="text/javascript" src="js/jquery-3.2.1.js" ></script><script type="application/javascript">function middleFun() {alert("middleFun");}</script><body><h1>主页面</h1></body>
</html>

总结:
(1)获取同级的frame对象,并调用其方法;

//获取同级的frame对象, "middle"为frame的id属性值
var middleFrame = window.parent.window.frames["middle"];
//frame对象可以直接调用window的函数
//middleFrame.xxxfunction();
//frame对象的contentWindow属性也可以调用window的函数
//middleFrame.contentWindow.xxxfunction();

window和frame的用法相关推荐

  1. php location.href,window.location.href的用法(动态输出跳转)

    javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面 location.href= ...

  2. jQuery中的$(window)与$(document)的用法区别

    [window对象] 它是一个顶层对象,而不是另一个对象的属性,即表示浏览器中打开的窗口. 1.属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个 ...

  3. JavaScript 中 window.setTimeout() 的详细用法

    setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout 在执行时,是在载入后延迟指定时间后 ...

  4. JavaScript window.setTimeout() 的详细用法

    setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout 在执行时,是在载入后延迟指定时间后 ...

  5. window.location与open用法

    1.window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. location.hostname 返回 web 主机的域名 location.pathnam ...

  6. window.open的详细用法

    window.open()可以弹出一个新的窗口,并且通过参数控制窗口的各项属性. 1. 最基本的弹出窗口代码 window.open('httP://codeo.cn/'); 2. window.op ...

  7. python中frame用法_Python实例之wxpython中Frame使用方法

    本节为大家分享的例子是wxpython Frame的用法. 例子: 代码如下: #!/usr/bin/python # -*- coding: GBK -*- # simple.py import w ...

  8. window.showModalDialog()用法

    1.定义 window.showModalDialog()用来创建模态对话框 语法为:vReturnValue = window.showModalDialog(sURL [, vArguments] ...

  9. node-webkit学习(4)Native UI API 之window

    4.1  WINDOW API概述 node-webkit版本>= v0.3.0才支持window api. Native GUI API中的window是对DOM页面的windows的一个封装 ...

最新文章

  1. PayPal API风格指南和设计模式
  2. 修改PostgreSQL数据库默认用户postgres的密码
  3. 浅谈linux命令大全
  4. JavaWeb课程复习资料(四)——创建Servlet
  5. java char判断相等_【Java面试考点4】java基础之运算符
  6. 利用MS17-010渗透win7(64位)
  7. CMFCTabCtrl 切换页面闪烁问题
  8. 微软出品,文科生也能学得懂的Python免费入门视频
  9. 华为鸿蒙平板MatePad Pro 2支持多屏协同突破
  10. 大数据之-Hadoop3.x_MapReduce_Job提交流程---大数据之hadoop3.x工作笔记0103
  11. SQL Server中查询存储的用例
  12. JavaScript常用事件(1)
  13. Unity WebGL与IIS小坑
  14. matlab fseek ftell,fseek函数、ftell函数和fflush函数
  15. 分享一个手写轮播图的学习案例
  16. 植物大战僵尸的闯关关数以及金钱修改
  17. screen.colorDepth(色彩深度) 和 screen.pixelDepth(像素深度)
  18. 从电信的广告学习情景与文案的搭配
  19. 利用TLF给文本加样式
  20. 抖音很火的公众号表白,每天定时发送给自己的女朋友

热门文章

  1. ctf MISC 学习总结
  2. kdj超卖_最全的KDJ(超买超卖)指标实用技巧(图解)
  3. ◆2008 年广告创意设计师必备网址汇总◆
  4. 使用python生成图片验证码
  5. java-POI的Excel默认字体和样式
  6. Android应用防xposed注入,android hook 框架 xposed 如何实现注入
  7. 「积木库」来了,做网站像搭积木一样简单
  8. Win10安装Docker和k8s
  9. windows linux终端模拟器,Wsl-Terminal终端模拟器
  10. 计算机开机扫描磁盘,电脑开机扫描磁盘的方法