最近几天一直在处理模式窗口的问题,索性写了这篇总结,以供参考:
1。打开窗口: var handle = window.showModalDialog(url, objects, feathers); 其中:objects可以为参数(包括数组),也可以是对象。 通常的用法 objects = {window} ,把父窗体的对象共享给子窗体。
2。关闭子窗口: window.close();
3。从子窗体传参数给父窗体: window.returnVal = string;
3。清除缓存,防止模式窗口页面不更新的情况: HTML <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Mon, 23 Jan 1978 20:52:30 GMT"> ASP <% Response.Expires = -1 Response.ExpiresAbsolute = Now() - 1 Response.cachecontrol = "no-cache" %> PHP header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); JSP response.setHeader("Pragma","No-Cache"); response.setHeader("Cache-Control","No-Cache"); response.setDateHeader("Expires", 0);
4。防止打开新窗口(如提交表单): <base target="_self">
5。在模式窗口使用F5刷新页面: <base target="_self"> <body onkeydown="if (event.keyCode==116){reload.click()}"> <a id="reload" href="filename.htm" style="display:none">reload...</a> 其中:filename为窗口页面。
6。防止模式窗口打开的页面出现cookie丢失的情况: 模式窗口打开新窗口时,仅可以使用 showModalDialog(url,window,feathers); 方法,且 objects 为 window 。 
|