本文详解JavaScript中模式与无模式对话框的区别,重点解析window.open方法的各项参数配置,包括全屏、频道模式及窗口尺寸定位。同时介绍showModalDialog与showModelessDialog的使用场景及属性设置,帮助开发者合理控制网页弹窗行为。
对话框类型与行为特征
对话框主要分为模式对话框和无模式对话框两类,核心区别在于关闭前是否允许用户操作同一应用程序的其他部分。例如,打开文件对话框属于典型的模式对话框,用户必须选择文件或取消操作后,才能继续在同一应用中执行其他任务。相比之下,查找和替换对话框属于无模式对话框,用户可以在其打开状态下同时进行其他工作。模式对话框会持续保持焦点,未关闭前无法切换至其他窗口;无模式对话框虽不始终保持焦点,但会始终显示在最前端。
网页窗口弹出技术全解
window.open参数配置示例
1. 创建全屏窗口
<html>
<body onload="window.open( http://www.3lian.com, example01 , fullscreen );">;
<b>www.3lian.com</b>
</body>
</html>
2. 创建被F11化后的窗口
<html>
<body onload="window.open( http://www.3lian.com, example02 , channelmode );">;
<b>www.3lian.com</b>
</body>
</html>
3. 创建带有收藏链接工具栏的窗口
<html>
<body onload="window.open( http://www.3lian.com, example03 , width=400,height=300,directories );">
<b>www.3lian.com</b>
</body>
</html>
showModalDialog系列函数详解
4. 网页对话框实现
<html>
<SCRIPT LANGUAGE="javascript">
<!--
showModalDialog( http://www.3lian.com, example04 , dialogWidth:400px;dialogHeight:300px;
dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes )
//-->
</SCRIPT>
<b>www.3lian.com</b>
</body>
</html>
<html>
<SCRIPT LANGUAGE="javascript">
<!--
showModelessDialog( http://www.pconline.com.cn , example05 , dialogWidth:400px;dialogHeight:300px;
dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes )
//-->
</SCRIPT>
<b>http://www.3lian.com</b>
</body>
</html>
通过showModalDialog()或showModelessDialog()调用网页对话框。两者的区别在于:showModalDialog()打开的是模式窗口,置于父窗口之上,必须关闭该窗口才能访问父窗口(建议谨慎使用,以免引起用户反感);showModelessDialog()打开的是无模式窗口,打开后无需关闭即可访问父窗口。
对话框属性参数说明
dialogHeight: iHeight 用于设置对话框窗口的高度。
dialogWidth: iWidth 用于设置对话框窗口的宽度。
dialogLeft: iXPos 用于设置对话框窗口相对于桌面左上角的left位置。
dialogTop: iYPos 用于设置对话框窗口相对于桌面左上角的top位置。
center: {yes | no | 1 | 0 } 指定是否将对话框在桌面上居中,默认值为“yes”。
help: {yes | no | 1 | 0 } 指定对话框窗口中是否显示上下文敏感的帮助图标,默认值为“yes”。
resizable: {yes | no | 1 | 0 } 指定对话框窗口大小是否可变,默认值为“no”。
status: {yes | no | 1 | 0 } 指定对话框窗口是否显示状态栏。对于非模式对话框,默认值为“yes”;对于模式对话框,默认值为“no”。