如何子窗口刷新父窗口

子窗口刷新父窗口的情况,如果是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

你可能感兴趣的:(.net,Blog)