转贴自
诗词在线
http://www.chinapoesy.com
诗词在线 |唐诗|宋词|元曲|现代诗歌|外国诗歌
126在线阅读网
http://www.Read126.cn
126在线阅读网 人物传记、古典名著、历史书籍。。。
下面是showModalDialog/showModelessDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口,希望对象我这样的WEB开发的菜鸟有所帮助.
(一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.
farther.html
---------------------------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META NAME ="Generator" CONTENT ="EditPlus" >
< META NAME ="Author" CONTENT ="" >
< META NAME ="Keywords" CONTENT ="" >
< META NAME ="Description" CONTENT ="" >
< 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 >
< br > 传递到父窗口的值: < input id ="txt9" type ="text" value ="3333333333333" >< br >
返回的值: < input id ="txt11" type ="text" >< br >
子窗口设置的值: < input id ="txt10" type ="text" >< br >
< input type ="button" value ="openChild" onclick ="openChild()" >
</ BODY >
</ HTML >
---------------------------------------------------------------
child.html
--------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META NAME ="Generator" CONTENT ="EditPlus" >
< META NAME ="Author" CONTENT ="" >
< META NAME ="Keywords" CONTENT ="" >
< META NAME ="Description" CONTENT ="" >
< meta http-equiv ="Expires" CONTENT ="0" >
< meta http-equiv ="Cache-Control" CONTENT ="no-cache" >
< meta http-equiv ="Pragma" CONTENT ="no-cache" >
</ HEAD >
< BODY >
< br > 父窗口传递来的值: < input id ="txt0" type ="text" >< br >
输入要设置父窗口的值: < input id ="txt1" type ="text" >< input type ="button" value ="设置父窗口的值" onclick ="setFather()" >< br >
输入返回的值: < input id ="txt2" type ="text" >< input type ="button" value ="关闭切返回值" onclick ="retrunValue()" >
< input type ="button" value ="关闭刷新父窗口" onclick ="" >
</ BODY >
</ HTML >
< 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 >
----------------------------
说明:
由于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" >
------------------------------------------------------------------------------------------------------------------------
(二)下面是关闭刷新父窗口的例子
farther.html
---------------------------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META NAME ="Generator" CONTENT ="EditPlus" >
< META NAME ="Author" CONTENT ="" >
< META NAME ="Keywords" CONTENT ="" >
< META NAME ="Description" CONTENT ="" >
< script language ="javascript" > ...
<!--
function openChild()
...{
var k = window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px");
if(k == 1)//判断是否刷新
...{
alert('刷新');
window.location.reload();
}
}
//-->
</ script >
</ HEAD >
< BODY >
< br > 传递到父窗口的值: < input id ="txt9" type ="text" value ="3333333333333" >< br >
< input type ="button" value ="openChild" onclick ="openChild()" >
</ BODY >
</ HTML >
----------------------------------------------------
child.html
--------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE > New Document </ TITLE >
< META NAME ="Generator" CONTENT ="EditPlus" >
< META NAME ="Author" CONTENT ="" >
< META NAME ="Keywords" CONTENT ="" >
< META NAME ="Description" CONTENT ="" >
< meta http-equiv ="Expires" CONTENT ="0" >
< meta http-equiv ="Cache-Control" CONTENT ="no-cache" >
< meta http-equiv ="Pragma" CONTENT ="no-cache" >
</ HEAD >
< BODY >
< br > 父窗口传递来的值: < input id ="txt0" type ="text" >< br >
< input type ="button" value ="关闭刷新父窗口" onclick ="winClose(1)" >
< input type ="button" value ="关闭不刷新父窗口" onclick ="winClose(0)" >
</ BODY >
</ HTML >
< script language =javascript > ...
<!--
var k=window.dialogArguments;
//获得父窗口传递来的值
if(k!=null)
...{
document.getElementById("txt0").value = k.document.getElementById("txt9").value;
}
//关闭窗口返回是否刷新的参数.
function winClose(isRefrash)
...{
window.returnValue=isRefrash;
window.close();
}
//-->
</ script >
--------------------------
说明
1.下面是取消客户端缓存的:
< meta http-equiv ="Expires" CONTENT ="0" >
< meta http-equiv ="Cache-Control" CONTENT ="no-cache" >
< meta http-equiv ="Pragma" CONTENT ="no-cache" >
也可以在服务器端取消缓存,参考:
http://adandelion.cnblogs.com/articles/252137.html
2.向父窗口传递阐述在ASP.NET中也可以是用aaa.aspx?id=1的方式传递.
3.不刷新父窗口的话在父窗口中直接这样一来设置可以.
< script > ...
window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px");
</ script >
4.在子窗口中若要提交页面的话要加入:,这样就不会打开新窗口了.
< head >
< base target ="_self" >
</ HEAD >
本文参考了:http://dev.csdn.net/develop/article/15/15113.shtm ,里面有showModalDialog/showModelessDialog的详细使用说明
诗词在线
http://www.chinapoesy.com
诗词在线 |唐诗|宋词|元曲|现代诗歌|外国诗歌
126在线阅读网
http://www.Read126.cn
126在线阅读网 人物传记、古典名著、历史书籍。。。