### 模态窗口demo及说明 #### 一、概述 模态窗口是用户界面设计中的一个常见元素,它能够提供一种交互方式,使得用户在不离开当前页面的情况下完成某些特定任务或操作。本文将深入探讨如何使用JavaScript创建模态窗口,并通过具体的代码示例来解释各种相关方法和属性。 #### 二、模态窗口的基础概念 模态窗口(Modal Window)是一种弹出式窗口,当其出现时会阻止用户与背后的应用程序进行互动,直到该窗口被关闭为止。这使得用户的注意力能够完全集中在模态窗口上,从而提高用户体验。 #### 三、模态窗口的实现方法 ##### 1. 使用`window.alert()`, `window.confirm()`, `window.prompt()` 这些内置函数可以快速创建简单的模态对话框,适用于简单的提示信息、确认操作或者获取用户输入的情况。 - `window.alert()`:显示一条消息并等待用户点击确定按钮。 - `window.confirm()`:显示一条消息并带有确定和取消两个按钮,返回一个布尔值表示用户的选择。 - `window.prompt()`:显示一条消息并请求用户输入信息,同样返回一个字符串表示用户输入的内容。 ##### 2. 使用`window.showModalDialog()` 这是Internet Explorer提供的一个非标准的方法,用于打开一个模态窗口。 - **语法**: ```javascript vReturnValue = window.showModalDialog(sURL, [vArguments], [sFeatures]); ``` - **参数说明**: - `sURL`:必选参数,指定要打开的文档的URL。 - `vArguments`:可选参数,传递给窗口的数据。 - `sFeatures`:可选参数,用来设置窗口的各种特性。 - **特性参数**: - `dialogHeight`: 设置对话框的高度,默认单位为像素。 - `dialogWidth`: 设置对话框的宽度,默认单位为像素。 - `dialogLeft`: 设置对话框距离屏幕左边的偏移量。 - `dialogTop`: 设置对话框距离屏幕顶部的偏移量。 - `center`: 是否居中显示,默认为居中。 - `help`: 是否显示帮助按钮,默认为显示。 - `resizable`: 是否允许改变窗口大小,默认不允许。 - `status`: 是否显示状态栏,默认为显示。 - `scroll`: 是否显示滚动条,默认为显示。 - `dialogHide`: 是否允许隐藏窗口,默认不允许。 - `edge`: 设置窗口边缘样式,默认为`raised`。 - `unadorned`: 是否无装饰,默认有装饰。 ##### 3. 使用`window.showModelessDialog()` 这是Internet Explorer提供的另一个非标准方法,用于打开一个非模态窗口。 - **语法**: ```javascript vReturnValue = window.showModelessDialog(sURL, [vArguments], [sFeatures]); ``` - **参数说明**: - `sURL`:必选参数,指定要打开的文档的URL。 - `vArguments`:可选参数,传递给窗口的数据。 - `sFeatures`:可选参数,用来设置窗口的各种特性。 - **特性参数**: 与`window.showModalDialog()`相同,但默认情况下`status`设置为`no`对于`Modeless`窗口。 #### 四、示例代码 下面是一个使用`window.showModalDialog()`创建模态窗口的示例: ```javascript <script> var mxh1 = new Array("mxh", "net_lover", "E"); var mxh2 = window.open("about:blank", "window_mxh"); // 打开模态窗口 window.showModalDialog("test2.htm", mxh1); // 使用window对象打开模态窗口 window.showModalDialog("test3.htm", mxh2); </script> ``` #### 五、注意事项 - `window.showModalDialog()`和`window.showModelessDialog()`是非标准方法,仅限于Internet Explorer浏览器支持。 - 在现代Web开发中,建议使用CSS和JavaScript库(如jQuery UI、Bootstrap等)来创建跨浏览器兼容的模态窗口。 #### 六、结论 通过本文的介绍,我们了解了模态窗口的基本概念以及几种实现方法。尽管`window.showModalDialog()`和`window.showModelessDialog()`提供了方便的功能,但由于它们是非标准方法,在实际项目中应考虑使用更广泛的解决方案来确保良好的跨浏览器兼容性。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如:
showModalDialog() (IE 4+ 支持)
showModelessDialog() (IE 5+ 支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。
使用方法如下:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth: 对话框宽度。
dialogLeft: 距离桌面左的距离。
dialogTop: 离桌面上的距离。
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
- 粉丝: 1
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip