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 相关文章推荐
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
window.onload使用指南
Sep 13 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
微信小程序网络请求实现过程解析
Nov 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之COOKIE支持详解
2010/09/20 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
深入理解js中this的用法
2016/05/28 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
详解Python3中yield生成器的用法
2015/08/20 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
详解Python的循环结构知识点
2019/05/20 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
python3中数组逆序输出方法
2020/12/01 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
环卫工人节活动总结
2014/08/29 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
关于保护环境的建议书
2019/06/24 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang