在js中window.self,window.top,window.parent,window.opener四个的做用区别仍是很大的,javascript
window.self,window.top是打开模式,html
而window.parent,window.opener是父窗口打开模式,下面我来介绍介绍。java
===============================================================浏览器
在应用有frameset或者iframe的页面时,框架
parent是父窗口,spa
top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),code
self是当前窗口,orm
opener是用open方法打开当前窗口的那个窗口。htm
window.self对象
功能:是对当前窗口自身的引用。它和window属性是等价的。
语法:window.self
注:window、self、window.self是等价的。
window.top
功能:返回顶层窗口,即浏览器窗口。
语法:window.top
注:若是窗口自己就是顶层窗口,top属性返回的是对自身的引用。
window.parent
功能:返回父窗口。
语法:window.parent
注:若是窗口自己是顶层窗口,parent属性返回的是对自身的引用。
在框架网页中,通常父窗口就是顶层窗口,但若是框架中还有框架,父窗口和顶层窗口就不必定相同了。
javascript调用父窗口(父页面)的方法。
window.parent 是iframe页面调用父页面对象
举例:
a.html
程序代码
<html> <head><title>父页面</title></head> <body> <form name="form1" id="form1"> <input type="text" name="username" id="username"/> </form> <iframe src="b.html" width=100%></iframe> </body> </html>
若是咱们须要在b.htm中要对a.htm中的username文本框赋值,就如不少上传功能,上传功能页在Ifrmae中,上传成功后把上传后的路径放入父页面的文本框中
咱们应该在b.html中写
<script type="text/javascript"> var _parentWin = window.parent ; _parentWin.form1.username.value = "xxxx" ; </script>
你应当将框架视为窗口中的不一样区域,框架是浏览器窗口中特定的部分。一个浏览器窗口能够根据你的须要分红任意多的框架,一个单个的框架也能够分红其它多个框架,即所谓的嵌套框架。
window.opener 的用法
window.opener 返回的是建立当前窗口的那个窗口的引用,好比点击了a.htm上的一个连接而打开了b.htm,而后咱们打算在b.htm上输入一个值而后赋予a.htm上的一个id为“name”的textbox中,就能够写为:
window.opener.document.getElementById("name").value = "输入的数据";