window.self ,window.parent ,window.openner的使用

来源:互联网 发布:淘宝怎么修改店铺类目 编辑:程序博客网 时间:2024/06/03 06:43

1.属性介绍

在应用有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属性返回的是对自身的引用。在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。


windo.opener

功能:返回使用 window.open() 方法打开该页面的窗体对象;

语法:window.opener

注:列如在一个a 页面中使用window.open( 'b.html' )方法打开b页面,那么在b页面运行时就可以使用window.opener对象调用a 页面 中的js方法。当页面为用户打开时该属性值为null。

2.window.parent 与 window.opener对象的使用
a.html

<a href="javascript:;" onclick="window.open(Authorize())" title="QQ"></a>function Authorize() {return "b.html";}function Authorize() {return "Hello";}

b.html

function B() { window.opener.A(); window.self.close(); }<iframe src="c.htm"></iframe>
c.html

window.parent.B();

注:三个页面a ,b,c;a页面中使用window.open()方法打开了b页面,在b页面中包含一个iframe标签内嵌c页面,在内嵌的c页    面 中使用 window.parent 对象调用父级b页面的B() 方法,由 B() 方法使用 window.opener 对象去调用打开b页面的a页面中的 A() 方            法并使用 window.seft 对象的close()方法关闭自身窗体,完成整个跳转。

在使用这种方式调用时应注意文档域是否相同,可以使用document.domain进行设置;例如 将三个页面文档域都设置为 document.domain = "**.com"。