jsp showModalDialog父子窗口传值

来源:互联网 发布:淘宝加购 编辑:程序博客网 时间:2024/06/13 22:28

原文出处:http://www.cnblogs.com/adandelion/archive/2005/10/26/262666.html 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<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 aa = document.getElementById("txt9").value;  
var k = window.showModalDialog("child.html",aa,"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="33333" 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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<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; 
alert(s);
window.returnValue=s; 
window.close(); 

//--> 
</script> 
</BODY> 
</HTML> 


说明 
1.下面是取消客户端缓存的: 
<meta http-equiv="Expires" CONTENT="0"> 
<meta http-equiv="Cache-Control" CONTENT="no-cache"> 
<meta http-equiv="Pragma" CONTENT="no-cache"> 
也可以在服务器端取消缓存,参考脚本之家下一篇文章 
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> 


a.htm

<html>
<script type="text/javascript">

function openWin() 

//var return_value_new = //window.showModalDialog("b.htm",[window],"toolbar:no;dialogWidth:500px;dialogHeight:400px;directories:no;status:no;scrollbars:yes;resize:no;menub//ar:no");
var aa = window.showModalDialog('b.htm','userids','dialogWidth=500px;dialogHeight=400px;');
document.getElementById("userids").value = aa; 
alert(aa);
  
}
</script>
  <body>
      <input type="button" value="a" onclick="openWin()">
 <input type="text" id="userids" name="userids">
  </body>

</html>


b.htm


<html>
<script type="text/javascript">
function closeWin() 

window.returnValue = "1";
window.close();
}
function returnValue(){
   var msg = window.dialogArguments;
   alert(msg);
   window.returnValue = "phone"; 
   window.close();
}


</script>
  <body>
      <input type="button" value="b" onclick="returnValue()">
  </body>


</html>


<!-- showModalDialog打开的窗口,子窗口可以通过window.dialogArguments来获取父窗口中的参数 -->
<!--
var time =new Date().getTime(); 
//关于加上那个 (new Data()) 是要避免showModalDialog页面自动缓存的问题,导致第二次打开页面,数据没有被刷新,这是因为showModalDialog页面如果每次的URL一样的话,它会自动显示以前在缓存里面的数据。 

var url = 'itsmOndutyPlanWork-selectUser.action?date='+time+'&onduty_plan_id='+ID; 
window.showModalDialog(url, self , "dialogHeight:600px; dialogWidth:400px"); 


说明: 
由于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"> 


-->

说明 
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>


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 看手机想吐怎么办 英雄联盟取名后怎么办 王者荣耀改名重复怎么办 刺激战场改名重复怎么办 省钱快报忘记密码怎么办 手机直播网速卡怎么办 触手tv直播黑屏怎么办 酷狗id密码忘记怎么办 打游戏网络不稳定怎么办 电脑打字法没了怎么办 家庭版密钥专业版系统怎么办 win7应用程序不能启动怎么办 win7用户密码忘记了怎么办 win7用户密码忘了怎么办 windows开不了机怎么办 网卡被卸载了怎么办 win7注销黑屏了怎么办 w7密码忘了怎么办 笔记本电脑键盘进水了怎么办 笔记本键盘进水了怎么办 笔记本进水键盘失灵怎么办 win7进不了系统怎么办 电脑显示屏两边黑屏怎么办 win8关机关不了怎么办 win10没激活黑屏怎么办 忘了产品密钥怎么办 小马易贷逾期怎么办 10系统未激活怎么办 win10账户被停用怎么办 win7激活码无效怎么办 windows显示不是正版怎么办 优酷上传错误怎么办 盗版系统会黑屏怎么办 安装了盗版系统怎么办 电脑鼠标不好用怎么办 自己组装电脑系统怎么办 ie双击没反应怎么办 电脑系统删了怎么办 产品密钥不知道怎么办 电脑安装ae崩溃怎么办 升级win10要密钥怎么办