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页面,就可以实现。
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>
实例地址: 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.
|