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 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
node.js不得不说的12点内容
Jul 14 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
May 11 Javascript
浅析Jquery操作select
Dec 13 Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
Jul 19 Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 Javascript
swiper实现导航滚动效果
Dec 13 Javascript
javascript实现数字时钟效果
Feb 06 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 日常开发小技巧
2009/09/23 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Django数据库表反向生成实例解析
2018/02/06 Python
django 将model转换为字典的方法示例
2018/10/16 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
python 标准差计算的实现(std)
2019/07/29 Python
Django 大文件下载实现过程解析
2019/08/01 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
软件设计的目标是什么
2016/12/04 面试题
社区精神文明建设汇报材料
2014/08/17 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
学校食堂管理制度
2015/08/04 职场文书