模式窗口的不刷新问题

在父窗口中用以下语句打开模式窗口

<input id="button" type="button" value="打开模式窗口" onclick="OpenWin('ModalDialog.aspx',500,400)" />

function OpenWin(frmWin,width,height)
{      
     var obj = new Object();
    // 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
    para1=document.getElementById(para1).value;
    para2=document.getElementById(para2).value;
   
    obj.para1 = para1;
    obj.para2 = para2;

    // 显示对话框。
    var ret=window.showModalDialog(frmWin,obj,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no');

    //获得模式窗口的返回值   
    if(ret && ret!="")
    {
    document.getElementById(paraReturn).value=ret;
    }
}
</script>

结果问题来了,在父窗口一直保留的情况下,打开的模式窗口中始终显示的是第一次打开的内容,无论你关闭打开模式窗口多少次,刷新父窗口多少次,都不能及时刷新。除非你关闭父窗口浏览器。重新启一个。

解决方式很简单

1.javascript方式,每次模式窗口的url参数都不一样让IE无法缓存模式窗口的内容

var num=Math.random()
...
var ret=window.showModalDialog(frmWin+"?"+num,obj,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no');

2.asp(asp.net)方式

修改ModalDialog.aspx Page_Load中增加以下三行:

         Response.CacheControl = "no-cache";
         Response.AddHeader ("Pragma", "no-cache");
         Response.Expires = 0;

经过测试均OK!

你可能感兴趣的:(模式)