- 浏览: 71180 次
- 性别:
- 来自: 深圳
最新评论
简单的说,就是一个在弹出窗口之后可以做其它的事,即window.open
另一个在弹出窗口之后不能做其它的事,只能是关闭了当前的窗口之后才能做其它的事,即window.showModalDialog
那么两者在使用上有什么不同呢?他们分别是如何和父窗口进行交互的呢?
先来看window.showModalDialog的例子:
我这里现在有一个父窗体parent.jsp,它里面有一个方法
function openChild(){
var temp = window.showModalDialog("child.jsp",window,'dialogWidth=400px;dialogHeight=200px');
document.getElementById("fromChildName").value = temp.childName;
document.getElementById("fromChildAge").value = temp.childAge;
}
这里面,我们第二个参数传递为window,也就是把当前页面做为参数传递到子窗口中,temp 为子窗口的返回值
再来看子窗口child.jsp页面:
function fromParent(){
var parName = window.dialogArguments.document.getElementById("pa rName").value; //得到父窗口中的姓名
var parAge = window.dialogArguments.document.getElementById("pa rAge").value
document.getElementById("fromParName").value = parName;
document.getElementById("fromParAge").value = parAge;
}
从上面我们就可以看出,在父窗口中我们传递了window这个参数,然后在子窗口中,我们用window.dialogArguments直接到取了父窗口中id = "parName"的属性值
再来说这个返回值temp是怎么回事?
function toParent(){
var obj = new Object();
obj.childName = document.getElementById("childName").value;
obj.childAge = document.getElementById("childAge").value;
window.returnValue = obj;
window.close();
}
我们用window.returnValue的方式直接把一个对象返回到父窗口,然后父窗口根据对象中的属性直接取出其中的值就OK了
那么,我们可不可以直接调用父窗口中的方法呢?
答案是肯定的:
function fromParentFunction(){
window.dialogArguments.parFunction();
}
我们用window.dialogArguments + 父窗口的方法名,就直接可以调用父窗口的方法
上面是window.showModalDialog如何来进行子父窗口间的传递值,那么,接下来看下window.open是如何进行子父窗口间的传值:
在父窗口parent.jsp页面中:
function openChild(){
var obj = window;
obj.name = "张三";
obj.age = "18";
window.open('child.jsp','我是弹出子窗口','height=200,width=400,top=200,left=400,toolbar=n o,menubar=no,
scrollbars=no, resizable=no,location=no, status=no');
}
我们定义变量obj = window,再通过属性赋值把对象传递过去,接下来看下子窗口:
function fromParent(){
alert("得到父窗口的中姓名值:"+ this.opener.name);
alert("得到父窗口中的年龄值:"+ this.opener.age);
}
利用this.opener.属性名 就可以得到父窗口中的变量值
那么如何把值子窗口中的值再返回到父窗口中呢?
function toParent(){
//把子窗口中的值传递给父窗口,document.getElementById("name").value得到子窗口的值
this.opener.document.getElementById("parName").val ue = document.getElementById("childName").value;
this.opener.document.getElementById("parrAge").val ue = document.getElementById("childAge").value;
window.close();
}
这里的parName是父窗口中的id = 'parName' ,也就是说,可以在子窗口中利用 this.opener. + 父窗口元素 赋值给父窗口
发表评论
-
字符串 常见类型转换[转]
2012-07-06 09:51 1018C++字符串完全指引之一 -- Win32 字符编码:Co ... -
ultra edit的正则表达式
2012-07-06 09:45 641每次使用ultra edit时都要查找正则表达式语法,现在 ... -
常用正则表达式
2012-07-06 09:37 530爱情使者丘比特问爱神阿佛洛狄忒:love的意义在哪里?爱神 ... -
delphi 2010编译exe文件大小
2012-07-06 09:30 1497一、体积测试、比 ... -
.net 组件开发资源(转)
2012-07-03 13:42 629想写一些.net 方面 ... -
将flex组件添加到papervision3d
2012-07-02 10:25 559上一篇文章介绍了 ... -
关于Flex4工程和 Alternativa3D 7.5.1的疑问
2012-07-02 10:25 647原文:http://bbs.9ria.com/thread ... -
在Flex组件上显示手型的鼠标
2012-07-02 10:25 603在Flex组件上显示手 ... -
flex3:drag-drop全攻略(二)
2012-07-02 10:25 805这里写四个实例:1,List->List 2, ... -
[Sliverlight]写于Silverlight整装待发之际(七):Silverlight VS Flash/Flex
2012-07-01 00:03 625对于两个事物的比较,我们通常会从两个方面出发,共同点和不同 ... -
Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
2012-07-01 00:02 424BlazeDS Test Drive里面 ... -
arcgis flex 安全沙箱问题
2012-07-01 00:02 584前几天在自己的机器上打了一套arcgis flex的开发环 ... -
Flex项目中如何实现跨域访问问题
2012-07-01 00:02 757在Flex项目的代码加载出加入如下的代码: impo ... -
Flex HTTPService 跨域访问
2012-07-01 00:02 751Summary: 基于Web 的flex 程序,后台采用的 ...
相关推荐
NULL 博文链接:https://shawnfree.iteye.com/blog/598885
window.showModalDialog以及window.open用法简介
window.showModalDialog以及window.open用法简介
window.showModalDialog&&open.docx
ShowModalDialog函数的功能: 使用方法: 参数说明:
本文实例讲述了js的window.showModalDialog及window.open用法。分享给大家供大家参考。具体分析如下: 一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open...
一个是window.showModalDialog()方法,后者是存在父子关系的一种弹出窗口,只有子窗关闭,父窗口才激活,并且可以传送参数和返回值。正好又温习一遍用法,顺便在此记录过程中遇到的问题。 基本介绍: ...
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。 window.showModelessDialog()方法用来创建一个显示HTML内容的非模态
2> 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var parentObjs = window.dialogArguments;opener.parentObj.elementObj.arrtr = 'str'; 3> IE与FireFox对两个弹出窗口在...
showModalDialog和window.open
嗨,Kavita3,它是Chrome浏览器中的一个已知问题,您可以使用window.open();希望对您有用
程序没有改动过运行一直正常,突然... 代码如下: “[removed]window.showModalDialog(‘Info.aspx?bh=” + Server.UrlEncode(e.Row.Cells.FromKey(“编号”).Text.Trim()) + “‘,null,’dialogWidth:750px;dialogHeig
showModalDialog是jswindow对象的一个方法,和window.open一样都是打开一个新的页面。区别是:showModalDialog打开子窗口后,父窗口就不能获取焦点了(也就是无法操作了)。可以在子窗口中通过设置window.return...
window.open()和window.showModalDialog(),并解决了showModalDialog()弹出窗口中列表分页的问题。 提供了三个JS方法: (1)showWindow(sURL, width, height); (2)showWindowInPage(pageUrl, params, title, ...
因为项目中使用showModalDialog函数的地方特别多,所以必须用一个类似方法实现功能,也就是window.open() 首先是判断子窗口关闭,因为项目是在子窗口关闭(确定按钮)的时候向父页面传递值的。
这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot....