js中window.self,window.top,window.parent,window.opener

在js中window.self,window.top,window.parent,window.opener四个的作用区别还是很大的,

window.self,window.top是打开模式,

而window.parent,window.opener是父窗口打开模式,下面我来介绍介绍。

===============================================================

在应用有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属性返回的是对自身的引用。

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

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 = "输入的数据";

 

posted @ 2016-05-07 01:08  Benjamin杰明  阅读(293)  评论(0编辑  收藏  举报