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脚本实现Web页面信息交互
Oct 11 Javascript
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
javascript实现密码验证
Nov 10 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
vue中使用codemirror的实例详解
Nov 01 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
Nov 06 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
微信小程序实现电影App导航和轮播
Nov 30 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 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
杏林同学录(二)
2006/10/09 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
php Session无效分析资料整理
2016/11/29 PHP
详解php中的implements 使用
2017/06/13 PHP
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
wxPython实现绘图小例子
2019/11/19 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
MADE法国:提供原创设计师家具
2018/09/18 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
优秀大学生推荐信范文
2013/11/28 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
科学发展观演讲稿
2014/09/11 职场文书
补充协议书
2015/01/28 职场文书
个人总结怎么写
2015/02/26 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技