JavaScript中window.showModalDialog与window.open的使用详解
本文详细解析JavaScript中window.open与window.showModalDialog的用法。涵盖window.open的环境支持、基本语法及常用参数;深入讲解showModalDialog的创建方法、外观属性配置(如dialogHeight、center等)以及通过vArguments传递参数和通过returnValue返回数据的具体实现示例,适用于IE浏览器环境下的窗口交互开发。
本文通过具体实例,详细解析JavaScript中window.showModalDialog与window.open两种窗口打开方法的实际应用,旨在为开发者提供清晰的参考与对比分析。
window.open()用法详解
一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+
二、基本语法:
window.open(pageURL,name,parameters)
其中包含三个核心部分:
pageURL 指定子窗口的路径; name 定义子窗口的句柄名称; parameters 设置窗口参数,多个参数之间使用逗号分隔。
三、示例:
<SCRIPT>
<!--
window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
//写成一行
-->
</SCRIPT>
执行脚本后,page.html将在名为newwindow的新窗口中打开,窗口宽度设为100像素,高度为400像素,距离屏幕顶部0像素,左侧0像素。该窗口禁用了工具条、菜单条、滚动条,且不可调整大小,同时隐藏了地址栏和状态栏。 请对照上述配置进行观察。
上述示例仅展示了部分常用参数,实际上还有更多可选参数,具体说明如下所述。
四、各项参数
注意:yes/no也可使用1/0表示;pixel value代表具体的像素数值。
| 参数 | 取值范围 | 说明 |
| alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 |
| alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上 |
| depended | yes/no | 是否和父窗口同时关闭 |
| directories | yes/no | Nav2和3的目录栏是否可见 |
| height | pixel value | 窗口高度 |
| hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键 |
| innerHeight | pixel value | 窗口中文档的像素高度 |
| innerWidth | pixel value | 窗口中文档的像素宽度 |
| location | yes/no | 位置栏是否可见 |
| menubar | yes/no | 菜单栏是否可见 |
| outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度 |
| outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度 |
| resizable | yes/no | 窗口大小是否可调整 |
| screenX | pixel value | 窗口距屏幕左边界的像素长度 |
| screenY | pixel value | 窗口距屏幕上边界的像素长度 |
| scrollbars | yes/no | 窗口是否可有滚动栏 |
| titlebar | yes/no | 窗口题目栏是否可见 |
| toolbar | yes/no | 窗口工具栏是否可见 |
| Width | pixel value | 窗口的像素宽度 |
| z-look | yes/no | 窗口被激活后是否浮在其它窗口之上 |
window.showModalDialog()使用手册
window.showModalDialog使用手册
基本介绍:
showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showModalDialog()方法用于创建一个显示HTML内容的模态对话框。 window.showModelessDialog()方法用于创建一个显示HTML内容的非模态对话框。
使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
vReturnValue = window.showModelessDialog(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="https://www.jb51.net";
</script>
币种定义部分
var psAddStr="ProcessID="+ProcessID+"&AddFlag="+isAddFlag+"&BZBH="+vsBZBH+"&BZMC="+vsBZMC+"&BZFH="+vsBZFH+"&JD="+vsJD;
var Result=window.showModalDialog("addSave.asp?"+psAddStr,'',"dialogHeight:250px;dialogWidth:250px;status:no;");
希望本文所述内容能对大家的javascript程序设计有所帮助。
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
