showModalDialog:模式窗口, 一种很特别的窗口,当它打开时,后面的父窗口的活动会停止,除非当前的模式子窗口关闭了, 才能操作父窗口.在做网页Ajax开发时,我们应该有时会用到它来实现表单的填写, 或做类似网上答题的窗口. 它的特点是,传参很方便也很强大,可直接调用父窗口的变量和方法.
使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
参数说明:
sURL--
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments--
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures--
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
2.dialogWidth: 对话框宽度。
3.dialogLeft: 离屏幕左的距离。
4.dialogTop: 离屏幕上的距离。
5.center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
6.help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。
参数传递:
1.要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
parent.htm
<script>
var obj = new Object();
obj.name="51js";
window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>
modal.htm
<script>
var obj = window.dialogArguments
alert("您传递的参数为:" + obj.name)
</script>
-------------------------------
2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
------------------------------
parent.htm
<script>
str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(str);
</script>
modal.htm
<script>
window.returnValue="http://www.51js.com";
</script>
用window.showModalDialog 或者window.showModelessDialog打开一个模式窗口后,和父窗口的一些交互问题。
要进行交互操作的前提,在调用showModalDialog或者showModelessDialog方法的时候,第二个参数传window,如:
window.showModelessDialog('filename.htm',window,'dialogWidth=200px;dialogHeight=250px;')
接下来,就是取得父窗口的一些数据和方法,这是经常会用的,父窗口取子窗口的参数一般通过returnValue就可以搞定了~
//取得父窗口的JS变量 var
window.dialogArguments.var;
//获得父窗口的对象和属性
window.dialogArguments.form1.name.value ;
//调用父窗口的方法 fun
window.dialogArguments.fun() ;
但是有个问题,在子窗口中的事件响应无法调用父窗口的方法,
<button onClick='window.dialogArguments.fun()'>调父窗口方法</button>
注,执行上面的方法的时候,窗口会停止响应
分享到:
相关推荐
`showModalDialog`方法的参数传递和获取是它功能的关键部分,下面我们将详细讨论。 ### 1. `showModalDialog`方法的基本语法 `showModalDialog`接受三个主要参数: - **URL**:指定对话框加载的页面URL,可以是...
本篇文章将深入探讨`showModalDialog`的参数使用,以及如何在子父窗口之间传递数据。 `showModalDialog`函数的基本语法如下: ```javascript window.showModalDialog(url, [startNode], [features]); ``` - `url`...
在JavaScript中,通过对话框进行参数传递是一种常见的交互方式,尤其在需要弹出一个模态对话框并与其进行数据交换的场景下更为常见。本文将详细介绍如何利用`window.showModalDialog()`方法来实现这种参数传递,并...
JavaScript中的`showModalDialog`函数是一个专用于创建模态对话框的方法,主要在IE浏览器上得到广泛支持(从IE4开始)。模态对话框意味着用户必须先关闭对话框才能与父窗口进行交互,这在需要用户输入信息或确认操作...
在上述描述中,开发者遇到了一个问题:当传递的参数中包含#字符时,浏览器会将#及其后面的内容视为URL的一部分,而不是作为参数传递。这是因为#字符在URL中用于区分URL的路径部分和片段标识符(通常用于页面内的锚点...
- `arguments` 参数可以用来传递数据给新窗口,通常是一个变量或对象。 - `features` 参数允许指定对话框的外观和行为特性,如位置、大小等。 #### showModelessDialog详解 与`showModalDialog`不同,`...
在这个例子中,`onclickOrder`函数会打开一个模态对话框,对话框加载的是`openPage.jsp`,同时将`orderTag`作为参数传递。 接下来,`openPage.jsp`接收到参数并创建一个`iframe`,该`iframe`加载站点2(系统2的被...
2. `arguments`:可选参数,可以传递给子页面的数据,通常是一个对象或字符串。 3. `features`:可选参数,定义对话框的样式和行为,如宽度、高度、是否可调整大小等。 当子页面处理完用户交互后,需要将数据返回给...
### JS弹出对话框 `window.showModalDialog()` 的使用与详解 #### 一、`window.showModalDialog()` 概述 在JavaScript中,`window.showModalDialog()` 是一个非标准但广泛使用的API,用于创建模态对话框。模态...
"showModalDialog"是JavaScript中的一个古老但仍然有用的弹出窗口方法,用于在浏览器环境中打开一个新的对话窗口。这个方法在Web开发中主要用于创建模态对话框,即那些阻止用户与页面其余部分交互直到对话框被关闭的...
以下是关于"javascript实现从子页与父页传递参数"的详细知识点: 1. **全局变量**:这是最基础的方法,可以在子页面中定义一个全局变量,然后在父页面中访问该变量来获取数据。但这种方法不推荐,因为全局变量可能...
在这个示例中,我们假设用户需要将某些参数传递给对话框,然后在对话框中展示或处理。 retu_value函数则是在用户完成对话框中的操作后,点击关闭按钮时被触发。它设置window.returnValue为"完成了",然后关闭对话框...
在JavaScript中,`showModalDialog`是一个非常有用的函数,它允许我们打开一个新的浏览器窗口或对话框,并与父窗口进行交互。这个功能在开发过程中经常用于创建弹出式表单、确认对话框或者需要用户输入信息的场景。...
总之,`window.showModalDialog()`是JavaScript中创建模态对话框的一种方法,主要用于提供一种用户交互的方式。然而,由于跨浏览器兼容性和用户体验的考虑,开发者在实际应用中需要谨慎使用,并考虑使用现代Web技术...
关于参数传递,`vArguments`可以用来传递数据给对话框。例如,可以在父窗口中传递一个对象,然后在对话框中通过`window.dialogArguments`访问并使用这些数据。下面的代码示例展示了如何将父窗口对象传递给子窗口,并...
4. 参数传递 参数可以通过`vArguments`传递,可以是字符串、数组、对象等。例如,将数组传递给对话框: ```javascript window.showModalDialog('dialog.html', ['item1', 'item2'], 'dialogFeatures'); ``` 5. ...
在JavaScript中,`showModalDialog`和`window.open`是两个用于打开新窗口或对话框的方法,它们在网页交互和用户界面设计中扮演着重要角色。这篇文章将详细讲解这两个方法的功能、用法以及它们的区别。 首先,我们来...
在JavaScript编程语言中,`Window.showModalDialog()`方法是一个非常重要的功能,主要用于打开一个模态对话框,即用户必须关闭对话框才能与父窗口进行交互。这个方法在创建用户交互和自定义弹出窗口场景中非常有用。...
当需要从主窗口向打开的对话框传递参数时,可以使用 `vArguments` 参数。例如,如果主窗口有一个变量 `var_name` 需要在对话框中使用,则可以这样调用: ```javascript window.showModalDialog("filename.htm", var_...