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

在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 = "輸入的數據";
相關文章
相關標籤/搜索