- 浏览: 580585 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
smilezhouwei:
请问CruiseControl在加载jar包时,由于jar包过 ...
修改CruiseControl的端口 -
zengxuefei:
不起作用啊,有bug
Flex+Java多文件上传 -
lzeus:
模仿的tomcat源码吧?
java事件处理机制(自定义事件)【转】 -
yangbobestone:
...
FreeMarker整合Struts2 -
fddjxllren:
那是因为你没配置事务,楼主的那个主要是针对事务的写法
Spring2.5+JUnit4单元测试
1、Javascript弹出子窗口
可以通过多种方式实现,下面介绍几种方法
(1) 通过window对象的open()方法,open()方法将会产生一个新的window窗口对象
其用法为:
window.open(URL,windowName,parameters);
URL: 描述要打开的窗口的URL地址,如何为空则不打开任何网页;
windowName:描述被打开的窗口的民称,可以使用'_top'、'_blank'等内建名称,这里的名称跟<a href="..." target="...">里的target属性是一样的。
parameters:描述被打开的窗口的参数值,或者说是样貌,其包括窗口的各个属性值,及要传入的参数值。
例如:
打开一个 400 x 100 的干净的窗口:
open('','_blank','width=400,height=100,menubar=no,toolbar=no,
location=no,directories=no,status=no,scrollbars=yes,resizable=yes')
也可以这样写: var newWindow = open('','_blank');
参数说明如下:
top=# 窗口顶部离开屏幕顶部的像素数
left=# 窗口左端离开屏幕左端的像素数
width=# 窗口的宽度
height=# 窗口的高度
menubar=... 窗口有没有菜单,取值yes或no
toolbar=... 窗口有没有工具条,取值yes或no
location=... 窗口有没有地址栏,取值yes或no
directories=... 窗口有没有连接区,取值yes或no
scrollbars=... 窗口有没有滚动条,取值yes或no
status=... 窗口有没有状态栏,取值yes或no
resizable=... 窗口给不给调整大小,取值yes或no
(2) 在javascript中除了通过open()方法建立window对象实现弹出窗口外,还可以通过建立对话框的方式弹出窗口。
如:
alert(""); //弹出信息提示对话框
confirm(""); //弹出信息确认对话框
prompt(""); //具有交互性质的对话框
但是,上述实现的弹出窗口具有的功能较为单一,只能完成较为简单的功能。对于需要在对话框中显示多个数据信息,
甚至是HTML控件就无能为力了。
(3)
使用模态对话框实现复杂的对话框需求
在javascript的内建方法中还有一类方法可以实现通过对话框显示HTML内容,
也就是说可以通过创建对话框的方式来完成创建窗口对象所能完成的功能。
包括创建模态对话框和非模态对话框两种。
实现方法为:
//创建模态你对话框
window.showModalDialog(sURL,vArguments,sFeatures)
//创建非模态对话框
window.showModelessDialog(sURL,vArguments,sFeatures)
其区别在于:
用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框
的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦 点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。 showModeDialog()则不然。
参数说明:
sURL:必选参数,类型:字符串。
用来指定对话框要显示的文档的URL。
vArguments:可选参数,类型:变体。
用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures:选参数,类型:字符串。
用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight:对话框高度
不小于100px,IE4中dialogHeight和dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth: 对话框宽度。
dialogLeft: 距离桌面左的距离。
dialogTop: 离桌面上的距离。
center: 窗口是否居中
默认yes,但仍可以指定高度和宽度,取值范围{yes | no | 1 | 0 }。
help: 是否显示帮助按钮
默认yes,取值范围 {yes | no | 1 | 0 }。
resizable: 是否可被改变大小。
默认no,取值范围 {yes | no | 1 | 0 } [IE5+]。
status: 是否显示状态栏。
默认为yes[ Modeless]或no[Modal],
取值范围{yes | no | 1 | 0 } [IE5+]。
scroll:指明对话框是否显示滚动条。
默认为yes,取值范围{ yes | no | 1 | 0 | on | off }。
还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:在打印或者打印预览时对话框是否隐藏。
默认为no,取值范围{ yes | no | 1 | 0 | on | off }。
edge:指明对话框的边框样式。
默认为raised,取值范围{ sunken | raised }。
unadorned:默认为no,取值范围{ yes | no | 1 | 0 | on | off }。
传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象
例如:
var newWin=window.showModalDialog(url,window,'dialogHeight:500px, dialogLeft:100px, dialogTop:100px,
dialogWidth:300px, status:0, edge:sunken');
newWin.open();
与使用window.open()方法创建窗口相比,模态方法创建窗口的区别在于有模态方法创建的窗口后将不能操作父窗口.
2、子窗口与父窗口间通信
(1) 使用window.open()创建的窗口与父窗口通信
可以在子窗口页面中通过window.opener来获取父窗口对象,获取之后子窗口便可以对父窗口执行刷新,传值等操作。
如:
window.opener.location.reload(); //子窗口刷新父窗口
window.opener.location.href //获取父窗口href
window.opener.locaiton.pathname //获取父窗口路径名
//刷新父页面
window.location.href=window.location.href ; //重新定位父页面
window.location.reload;
(2) 模态窗口与父窗口通信
通过使用showModelDialog(),及showModelessDialog()方法创建的子窗口想与父窗口通信时,不能通过window.opener
来获取父窗口对象。要实现通信,必须在创建模态子窗口时向子窗口传入父窗口对象。
实现方式为:
在父窗口中:
var newWin=window.showModelDialog(url,window,'');
newWin.open();
此时参数window即是父窗口对象
在子窗口中:
需首先获取父窗口对象,然后才能使用父窗口对象。由于父窗口对象是在创建
子窗口时通过传入参数的方式传入的,因此,在子窗口中也只能通过获取窗口参数的方式获取父窗口对象。获取方式如下
:
var parent=widnow.dialogArguments;
变量parent便是父窗口对象。
例如:
//通过子窗口提交父窗口中的表单:form1,提交后执行查询操作
var parent=window.dialogArguments;
parent.document.form1.action="QueryInfor.jsp";
parent.submit();
//刷新父页面
var parent=window.dialogArguments;
parent.location.reload();
//从子窗口传值到父窗口
要实现在模态子窗口中传值到父窗口,需要使用window.returnValue完成
实现方法如下:
在子窗口中:
//获取父窗口某字段值,对该值加一后返回父窗口
var parent=window.dialogArguments;
var x=parent.docuement.getElementById("age").value;
x=x+1;
//传回x值
window.returnValue=x;
在父窗口中:
//获取来自子窗口的值
var newWin=window.showModelDialog(url,window,'');
if(newWin!=null)
document.getElementById("age").value=newWin;
//在子窗口中设置父窗口的值
在子窗口中向父窗口中传入值似乎没有直接设置父窗口中的值来得明了。直接设置父窗口中元素的值显得要更灵活一些,不过具体使用哪种方法要根据实际情况和已
有的实现方式而定,因为如果使用了不切实际的方法不仅降低开发效率,也降低了执行效率,往往也会造成不优雅的实现方式和代码风格。
子窗口设置父窗口的值使用方法如下:
子窗口中:
var parent=window.dialogArguments;
var x=parent.document.getElementById("age").value;
x=x+1;
//设置父窗口中age属性值
parent.document.getElementById("age").value=x;
以上是我在项目中使用javascript解决子窗口问题时,收集及积累的一些方法和资料。我是使用建立模态窗口的方式来实现的(这主要与项目本身 有关),不过其实不论是使用window.open()还是使用window.showModelDialog()进行传参等操作时虽然在实现方法上有很 大的差别,初次接触会觉得有点乱,但只要理清子窗口与父窗口之间的关系和角色之后,就很好理解了。
转载:http://blog.csdn.net/squirrelRao/archive/2007/08/15/1745306.aspx
补充:
子窗体传值给父窗体可以通过函数传值
1.htm 父窗体代码
<script language="javascript" >
function toUrl()
{
window.open("2.htm","_blank");
}
function getvalue(a)
{ Form1.Text1.value=a; }
</script>
<form id="form1">
<input id="text1" width=150px/>
<input id="button1" name="button1" onclick="toUrl()"/>
</form>
2.htm 子窗体
<script language="javascript" >
function goBack()
{
window.opener.getvalue("123");
window.close();
}
</script>
<form id="form1">
<input id="button1" name="button1" onclick="goBack()"/>
</form>
子窗体父窗体之间传值通过摸态对话框,试验代码
1.htm 父窗体
<script language="javascript" >
function transVal()
{
var newwin=window.showModalDialog("2.htm",window);
if(newwin!="[object]")
{ document.getElementById("Text1").value=newwin; }
}
</script>
<form id="form1">
<input id=text1 width=150px/>
<input type="button" id=button1 onclick="transVal()"/>
</form>
2.htm 子窗体
<script language="javascript" >
function reVal()
{var x="123";
window.returnValue=x;
window.close();}
</script>
<form id="form1">
<input type="button" id=button1 onclick="reVal()"/>
</form>
发表评论
-
是否包含中文
2009-06-25 16:45 1021//是否包含中文 function isCh ... -
JS时分秒组件
2009-06-16 17:13 2144setTime.js文件内容如下: ... -
Javascript判断是否为正整数
2009-06-04 16:38 2436//判断是否为正整数 function isInteger( ... -
Javascript时间比较
2009-06-04 16:38 1628//时间比较 function compareTime(ti ... -
Javascript日期比较
2009-06-04 16:38 1567//日期比较 function compareDate(da ... -
清除下拉列表
2009-04-13 16:25 1142//清除下拉列表 function clearSelect ... -
iframe自适应高度
2009-04-01 20:58 965以下方法只适合在同一域中 <iframe wid ... -
文本框默认值
2009-03-31 16:20 1408<input name="keyword&qu ... -
javascript面向对象技术基础(六)
2009-03-13 14:36 1061作用域、闭包、模拟私 ... -
javascript面向对象技术基础(五)
2009-03-13 14:34 981类变量/类方法/实例变量/实例方法先补充一下以前写过的方法: ... -
javascript面向对象技术基础(四)
2009-03-13 14:33 913类、构造函数、原型先来说明一点:在上面的内容中提到,每一个函 ... -
javascript面向对象技术基础(三)
2009-03-13 14:32 1154函数javascript函数相信大家都写过不少了,所以我们这 ... -
javascript面向对象技术基础(二)
2009-03-13 14:31 1017数组我们已经提到过,对象是无序数据的集合,而数组则是有序数据 ... -
javascript面向对象技术基础(一)
2009-03-13 14:30 1395看了很多介绍javascript ... -
JS验证金额的正则表达式
2009-02-25 18:01 11173function isDigit(s) { var patr ... -
推荐一下树Tree组件
2008-12-02 16:32 1518http://dhtmlx.com/docs/products ... -
DTree树
2008-10-06 17:38 1309DTree树不错,使用起来很方便. 可以到http://des ... -
子窗体创建以及子窗体父窗体之间的通信(自己整理)
2008-09-10 22:55 1553父窗体 <!DOCTYPE HTML PUB ... -
单元格背景色鼠标响应
2008-07-17 22:17 1099<!DOCTYPE html PUBLIC " ... -
禁止文件上传时输入名称
2007-10-09 11:48 1249<input type="file" ...
相关推荐
Flex 子窗体操作父窗体,实现父与子窗体之间数据传输,当子窗体数据改变时父窗体数据也相应改变。
本文实例总结了C#子窗体与父窗体通信方法。分享给大家供大家参考。具体如下: 【第一种方法:】 第一步: 创建接口IForm,父窗体继承这个接口 public interface IForm { void RefreshForm(); } 第二步: 父窗体...
模式对话框作为父窗体,与非模式子对话框之间通过自定义消息通讯,同时设置子对话框为透明窗体。
子窗体(Form2):一个“textBox1”,一个“确定”按钮,一个“取消”按钮 功能:双击Form1中的button1,弹出Form2,往Form2的textBox1中输入内容,单击“确定”则,Form2被关闭,Form1的“label1”内容被修改成与...
该demo是uniapp混合项目示例,涉及的有子窗体的使用和注意的地方,以及父窗体与子窗体之间的通信。
C# MDI 记事本实例,实现了记事本的所有功能,是学习MDI的很好源码,也是学习父窗体和子窗体通信的很好教程
6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和对话条 ...
6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和对话条 ...
6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和对话条 ...
6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和...
6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和对话条 ...
5.8.2 树控件父项和子项 221 5.8.3 树控件项位置 222 5.8.4 树控件项标签 222 5.8.5 树控件标签编辑 223 5.8.6 树控件项的状态 223 5.8.7 树控件图像列表 224 5.8.8 树控件项选择 224 5.8.9 树控件拖放操作 224 ...
2.1.19 MdiChildren属性——获取子窗体的数组 146 2.1.20 MdiParent属性——设置父窗体 147 2.1.21 MinimizeBox属性——是否显示最小化按钮 147 2.1.22 Minimum属性——数字显示框的最小值 148 2.1.23 Opacity属性...
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作 DosDateTimeToFileTime 将DOS...
子程序 窗口置父, 整数型, 公开, 指定一个窗口的新父(返回前一个父窗口的句柄) .参数 窗口句柄, 整数型, , 子窗口句柄 .参数 新父, 整数型, 可空, 新的父窗口句柄 默认为0:置顶级窗口 -1:嵌入桌面 .子程序 窗口置...
实例045 通过子窗体刷新父窗体 47 实例046 拖动无边框窗体 51 1.14 其他技术 52 实例047 禁用窗口上的关闭按钮 52 实例048 实现动态系统托盘图标 53 实例049 实现气泡提示窗口 54 第2章 控件应用 56 2.1 ...