JavaScript中window.showModalDialog与window.open的使用详解

作者:闭包旅人时间:2026-10-28 21:08:13浏览:403

本文详细解析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程序设计有所帮助。

作者最新文章