如何子窗口刷新父窗口

子窗口刷新父窗口的情况,如果是window.open(),那么直接用window.opener.location.reload(),如果是window.showModalDialog(),它里面是没有window.opener的,不能用opener引用父窗口,否则直接调用用报错。

总结了一下有两种方法可以解决,一是在子窗口中刷新父窗口,二是在子窗口关闭后,父窗口自己刷新。

一、在子窗口中刷新父窗口

       父窗口: 因为子窗口不能直接引用父窗口,所以需要父窗口主动传递指针变量,就是window.showModalDialog的第二个参数,参数为“window”,

示例:

var returnValue = window.showModalDialog(url,window,"dialogHeight=350px;dialogWidth=400px;center=yes;status=no;scroll=no;resizable=yes");

注意:window不要加引号。

子窗口:执行完操作后调用window.dialogArgument.location.reload();

注意父窗口必须是iframe. 如果父窗口不是iframe,想要实现这个功能,还可以在body中加入"onUnload=window.dialogArgument.location.reload()" ,这样子窗口关闭时就可以刷新父窗口了。

二、在父窗口中刷新自己

在子窗口关闭后,父窗口自己刷新,例如:

var returnValue = window.showModalDialog(url,window,"dialogHeight=350px;dialogWidth=400px;center=yes;status=no;scroll=no;resizable=yes");
        if(returnValue == "true"){
            window.location.reload();
        }

还有一种方法就是在子窗口中调用父窗口的一个方法,该方法自己刷新本页面(父窗口);

子窗口:window.dialogArgument.reloadPage();window.close;

父窗口: function reloadPage(){window.location.reload();}

修改自:CSDN博客,原出处:http://blog.csdn.net/gideal_wang/archive/2009/08/03/4404108.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值