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

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"。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章