JavaScript 弹出子窗体并返回结果到父窗体的实现代码


Posted in Javascript onMay 28, 2016

思路:用window.showModalDialog方法获取到弹出子窗体的引用,再在子页面用window.returnValue="***"来返回结果。

示例代码:(用jQuery简化实现)

父页面:parent.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>父页面</title>
<mce:script language="javascript"><!--
 
function showmodal()
{  
var strReturn = window.showModalDialog("son.html",null,"dialogWidth:800px;dialogHeight:600px;help:no;status:no"); 
var s="您选择了:";
for(var i=0;i<strReturn.length;i++)
{
	s+=strReturn[i]+",";
	}
alert(s);

}
// --></mce:script>
</body>
</html>

子页面 son.html 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>子窗体</title>
<mce:script type="text/javascript" src="jquery-1.4.2.min.js" mce_src="jquery-1.4.2.min.js"></mce:script>
<mce:script type="text/javascript"><!--
var result;
$(function(){
		  $("#send").click(function(){
									 var result=new Array();
											$("[name=a]:checkbox:checked").each(function(){
												result.push($(this).val());									 
																						 });																	
									 window.returnValue=result;
									 window.close();
									 });
		  });
// --></mce:script>
</head>
<body>
<p>
<input type="checkbox" name="a" value="苹果" />苹果
<input type="checkbox" name="a" value="橘子" />橘子
<input type="checkbox" name="a" value="香蕉" />香蕉

<INPUT type="button" value="提交" id="send" /> 

</p>
</body>
</html>

总结:

 参数传递:

1.   要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------

parent.htm

<script>
     var obj = new Object();
     obj.name="51js";
     window.showModalDialog("son.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>

son.htm

<script>
     var obj = window.dialogArguments
     alert("您传递的参数为:" + obj.name)
</script>

2.   可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:

parent.htm

<script>
     str =window.showModalDialog("son.htm",,"dialogWidth=200px;dialogHeight=100px");
     alert(str);
</script>

son.htm

<script>
     window.returnValue="http://blog.csdn.net/a497785609";
</script>

扩展:

在.net中,可以通过这种方式来实现AJAX效果。当子页面传递所要选择的参数后,父页面可以实现ICallbackEventHandler接口,直接将获取到的值传回服务器端。或者用UpdatePanel的Load事件来扑捉到传递过来的参数,从而继续进行服务器端处理。

以上这篇JavaScript 弹出子窗体并返回结果到父窗体的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
javascript实现模拟时钟的方法
May 13 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
Jun 21 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
150行Node.js实现的dns代理工具
Aug 02 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 Javascript
JS模态窗口返回值兼容问题的完美解决方法
May 28 #Javascript
js弹出窗口返回值的简单实例
May 28 #Javascript
JS获取子窗口中返回的数据实现方法
May 28 #Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 #Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 #Javascript
全面解析多种Bootstrap图片轮播效果
May 27 #Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 #Javascript
You might like
PHP URL参数获取方式的四种例子
2014/02/28 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
three.js 入门案例详解
2018/01/23 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
利用python发送和接收邮件
2016/09/27 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
Django入门使用示例
2017/12/12 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
小班幼儿评语大全
2014/04/30 职场文书
保护黄河倡议书
2014/05/16 职场文书
化学专业自荐信
2014/05/28 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸