IE showModalDialog 与 showModelessDialog 参数及传值详解

作者:像素漫游时间:2026-10-27 20:59:52浏览:258

本文详解IE浏览器支持的 showModalDialog 和 showModelessDialog 方法。介绍如何设置对话框高度、宽度、居中及滚动条等外观参数,并通过 vArguments 传递对象或字符串至子窗口,利用 window.dialogArguments 接收。同时演示如何通过 window.returnValue 将结果返回给父窗口,包含完整代码示例。

showModalDialog 基本介绍与语法

基本介绍

showModalDialog() 方法自 IE 4 起提供支持,而 showModelessDialog() 则从 IE 5 开始可用。window.showModalDialog() 用于创建显示 HTML 内容的模态对话框,即用户必须关闭该窗口才能操作父窗口;window.showModelessDialog() 用于创建非模态对话框,允许用户在打开子窗口的同时继续与父窗口交互。

使用方法

调用语法如下: vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures]) vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])

对话框外观参数设置

参数说明

sURL 为必选参数,类型为字符串,指定对话框需显示的文档 URL。 vArguments 为可选参数,类型为变体(Variant),用于向对话框传递数据。传递的参数类型不限,可包含数组等复杂类型。子窗口通过 window.dialogArguments 属性获取传入的参数。 sFeatures 为可选参数,类型为字符串,用于描述对话框的外观特征,可指定以下一个或多个属性,各属性间以分号“;”分隔。

---------------- 1. dialogHeight: 设置对话框高度,最小值为 100px。 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+]:指定是否显示状态栏。模态对话框默认为 no,非模态对话框默认为 yes。 9. scroll:{ yes | no | 1 | 0 | on | off }:指定是否显示滚动条,默认值为 yes。

下面几个属性主要用于 HTA(HTML 应用程序)环境,在普通网页开发中通常不使用。

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="https://www.jb51.net";
</script>
作者最新文章