本文主要是介绍window.showModalDialog和window.open关闭子页面时刷新父页面【转】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
window.open 弹出新窗口的命令;
'page.html' 弹出窗口的文件名;
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
height=100 窗口高度;
width=400 窗口宽度;
top=0 窗口距离屏幕上方的象素值;
left=0 窗口距离屏幕左侧的象素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏。
Resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许
父窗体打开页面的javascript
function GoToPage(id)
{
var title="title";
var url="xxxxx.aspx?ID="+id+"&Radom="+Math.random();;
var Width="700";
var Height="600";
var arguemnts = new Object();
arguemnts.window = window;
if (document.all&&window.print)
{
window.showModalDialog(url,arguemnts,"dialogWidth:" + Width + "px;dialogHeight:" + Height + "px;center:yes;status:no;scroll:yes;help:no;");
//或者window.showModelessDialog
//模态窗口在关闭后可以直接在后面跟上刷新的语句
window.location.reload();
}
else
{
window.open(url,"","width=" + Width + "px,height=" + Height + "px,resizable=1,scrollbars=1");
}
}
在 window.open打开的窗口中,关闭子窗口并刷新父窗口
window.opener.location.reload();window.opener=null;window.close();
在window.showModalDialog打开窗口中,关闭子窗口并刷新父窗口
window.dialogArguments.window.location = window.dialogArguments.window.location; self.close();
(一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.
farther.html
---------------------------
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META content ="EditPlus" name ="Generator" >
< META content ="" name ="Author" >
< META content ="" name ="Keywords" >
< META content ="" name ="Description" >
< script language ="javascript" >
<!--
function openChild(){
var k = window.showModalDialog( " child.html " ,window, " dialogWidth:335px;status:no;dialogHeight:300px " );
if (k != null )
document.getElementById( " txt11 " ).value = k;
}
// -->
</ script >
</ HEAD >
< BODY >
< FONT face ="宋体" ></ FONT >
< br >
传递到父窗口的值: < input id ="txt9" type ="text" value ="3333333333333" name ="txt9" >< br >
返回的值: < input id ="txt11" type ="text" name ="txt11" >< br >
子窗口设置的值: < input id ="txt10" type ="text" name ="txt10" >< br >
< input id ="Button1" onclick ="openChild()" type ="button" value ="openChild" name ="Button1" >
</ BODY >
</ HTML >
child.html
---------------------------
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META content ="EditPlus" name ="Generator" >
< META content ="" name ="Author" >
< META content ="" name ="Keywords" >
< META content ="" name ="Description" >
< meta http-equiv ="Expires" content ="0" >
< meta http-equiv ="Cache-Control" content ="no-cache" >
< meta http-equiv ="Pragma" content ="no-cache" >
</ HEAD >
< BODY >
< FONT face ="宋体" ></ FONT >
< br >
父窗口传递来的值: < input id ="txt0" type ="text" name ="txt0" >< br >
输入要设置父窗口的值: < input id ="txt1" type ="text" name ="txt1" >< input id ="Button1" onclick ="setFather()" type ="button" value ="设置父窗口的值" name ="Button1" >< br >
输入返回的值: < input id ="txt2" type ="text" name ="txt2" >< input id ="Button2" onclick ="retrunValue()" type ="button" value ="关闭切返回值" name ="Button2" >
< input id ="Button3" onclick ="" type ="button" value ="关闭刷新父窗口" name ="Button3" >
< script language ="javascript" >
<!--
var k = window.dialogArguments;
// 获得父窗口传递来的值
if (k != null )
{
document.getElementById( " txt0 " ).value = k.document.getElementById( " txt9 " ).value;
}
// 设置父窗口的值
function setFather()
{
k.document.getElementById( " txt10 " ).value = document.getElementById( " txt1 " ).value
}
// 设置返回到父窗口的值
function retrunValue()
{
var s = document.getElementById( " txt2 " ).value;
window.returnValue = s;
window.close();
}
// -->
</ script >
</ BODY >
</ HTML >
----------------------------
说明:
由于showModalDialog缓存严重,下面是在子窗口取消客户端缓存的设置.也可以在服务器端取消缓存,参考:
http://adandelion.cnblogs.com/articles/252137.html
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
这篇关于window.showModalDialog和window.open关闭子页面时刷新父页面【转】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!