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.html中對a.html頁面的username文本框賦值時,在b.html中應該這樣寫:
b.html:
<script type="text/javascript">    
var _parentWin = window.parent ;    
_parentWin.form1.username.value = "xxxx" ;    
</script>
 
2、window.opener是window.open打開的子頁面調用父頁面對象
比如:a.html
<script type="text/javascript">    
function openSubWin()    
{    
var _width = 300 ;    
var _height = 200 ;    
var _left = (screen.width - _width) / 2 ;    
var _top = (screen.height - _height) / 2 ;    
window.open("b.html",null,    
"height=" + _height + ",width=" + _width + ",status=no,toolbar=no,menubar=no,location=no,resizable=yes,left=" + _left + ",top=" + _top);    
}    
</script>    
<input type="text" name="username" id="username"/>    
<input type="button" value="彈出子頁面" onClick="openSubWin();">    
當要在b.html中對a.html頁面的username文本框賦值時,在b.html中應該這樣寫:
b.html:
<script type="text/javascript">        
function UpdateParent()        
{        
var _parentWin = window.opener ;        
_parentWin.form1.username.value = "xxxx" ;        
//或者:window.opener.document.getElementById("username").value = "xxxx";
}        
</script>        
<input type="button" name="button" id="button" value="更新主頁面的UserName內容" onClick="javascript:UpdateParent();">        
 
總結:
window.parent中parent表示父窗口,比如一個A頁面利用iframe或frame調用B頁面,那麼A頁面就是B頁面的parent。B頁面可以通過parent訪問A頁面。
 
window.opener中的opener表示誰打開我的,比如一個A頁面利用window.open彈出了B頁面,那麼A頁面就是B頁面的opener。B頁面可以通過opener訪問A頁面。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章