該變更永遠指分割視窗最高層次的瀏覽器視窗。如果計劃從分割視窗的最高層次開始執行命令,就可以用top變數。
parent:
該變數指的是包含當前分割視窗的父視窗。如果在一個視窗內有分割視窗,而在其中一個分割視窗中又包含著分割視窗,則第2層的分割視窗可以用parent變數引用包含它的父分割視窗。
opener:
指用WINDOW.OPEN等方式建立的新視窗對應的原視窗。
附:Window對象、Parent對象、Frame對象、Document對象和Form對象的階層關係:Windwo對象→Parent對象→Frame對象→Document對象→Form對象,
如下:parent.frame1.document.forms[0].elements[0].value;
問題:在一個頁面嵌入架構<iframe>,然後在架構中使用jvascript指令碼:parent.xx.value='xxxxx'; 在IE中可以正常看到賦值,但是在firefox中則不能完成賦值。請問在firefox中調用父架構的對象應該是哪個,是否和IE相容?
解答:window.parent.document.form名.xx.value='xxxxx'; window可省略。
parent.document.form名.xx.value='xxxxx'; parent.document.getElementById("xx").value='xxxxx';
window.parent與window.opener的區別 javascript調用主視窗方法
1: 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>
2: window.opener 是window.open 開啟的子頁面調用父頁面對象
opener:對開啟當前視窗的window對象的引用,如果當前視窗被使用者開啟,則它的值為null。
self:自引用屬性,是對當前window對象的應用,與window屬性同義。
self代表自身視窗,opener代表開啟自身的那個視窗,比如視窗A開啟視窗B。如果靠window.open方法,則對於視窗B,self代表B自己,而opener代表視窗A。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/jamestaosh/archive/2009/06/20/4284960.aspx 如果我們需要在b.htm中要對a.htm中的username文字框賦值(就如很多上傳功能,上傳功能頁在Ifrmae中,上傳成功後把上傳後的路徑放入父頁面的文字框中),我們應該在b.html中寫:
2: window.opener 是window.open 開啟的子頁面調用父頁面對象 opener:對開啟當前視窗的window對象的引用,如果當前視窗被使用者開啟,則它的值為null。 self:自引用屬性,是對當前window對象的應用,與window屬性同義。 self代表自身視窗,opener代表開啟自身的那個視窗,比如視窗A開啟視窗B。如果靠window.open方法,則對於視窗B,self代表B自己,而opener代表視窗A。 本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/jamestaosh/archive/2009/06/20/4284960.aspx