window.opener是當前頁面A通過open方法彈出一個窗口B,那在B頁面上 window.opener就是A
window.parent是當前頁面C通過location.href轉到新的頁面D,那在D頁面上window.parent就是B
或者是頁面E里套一個frame為F,那F頁面的window.parent就是E
A頁面通過open方法打開B頁面,B頁面通過location打開C頁面,C頁面上刷新A頁面
function refreshParenetWindow( refreshMethod )
{
switch( refreshMethod )
{
case "ButtonClick":
oParentButton = window.parent.opener.document.getElementById( "btnSearch" );
oParentButton.click(); break;
case "Location":
window.opener.navigate(window.opener.location.href);
break;
default: window.opener.navigate(window.opener.location.href); break;
}
}
A頁面通過open方法打開B頁面,B頁面通過open打開C頁面,C頁面上刷新A頁面
在B頁面的onunload事件中寫一段刷新A頁面的javascript方法,在C頁面關閉的時候,關閉B頁面,就可以實現(xiàn)。
window.parent與window.opener的區(qū)別 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>
實例地址: http://www./blog/attachments/window.parent實例/a.html
2: window.opener 是window.open 打開的子頁面調用父頁面對象
實例地址: http://www./blog/attachments/window.opener實例/a.html
opener:對打開當前窗口的window對象的引用,如果當前窗口被用戶打開,則它的值為null.
self:自引用屬性,是對當前window對象的應用,與window屬性同義.
self代表自身窗口,opener代表打開自身的那個窗口,比如窗口A打開窗口B.如果靠window.open方法,則對于窗口B,self代表B自己,而opener代表窗口A.
|