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 相关文章推荐
select组合框option的捕捉实例代码
Sep 30 Javascript
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
Javascript检查图片大小不要让大图片撑破页面
Nov 04 Javascript
javascript实现修改微信分享的标题内容等
Dec 11 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
Dec 18 Javascript
整理关于Bootstrap列表组的慕课笔记
Mar 29 Javascript
Web开发使用Angular实现用户密码强度判别的方法
Sep 27 Javascript
JavaScript实现前端网页版倒计时
Mar 24 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实现的MongoDB数据库操作类分享
2014/05/12 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
JS实现方形抽奖效果
2018/08/27 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
pyqt5简介及安装方法介绍
2018/01/31 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python 爬取疫情数据的源码
2020/02/09 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
大学自主招生自荐信
2013/12/16 职场文书
中学生打架检讨书
2014/02/10 职场文书
美术教师岗位职责
2014/03/18 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
英语系毕业生求职信
2014/07/13 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
python实现高效的遗传算法
2021/04/07 Python