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 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
Jan 15 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 Javascript
在vue中使用console.log无效的解决
Aug 09 Javascript
js实现纯前端压缩图片
Nov 16 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
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地址引用(php地址引用的效率问题)
2012/03/23 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php实现URL加密解密的方法
2016/11/17 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
angular第三方包开发整理(小结)
2018/04/19 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
python实现的文件夹清理程序分享
2014/11/22 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
python常规方法实现数组的全排列
2015/03/17 Python
Python函数返回值实例分析
2015/06/08 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python使用knn实现特征向量分类
2018/12/26 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
2015年元旦活动总结
2014/05/09 职场文书