JavaScript showModalDialog 父子窗口传值完整指南

作者:闭包旅人时间:2026-10-27 22:36:26浏览:503

本文详细介绍JavaScript中showModalDialog方法的完整用法,包括必选与可选参数的配置。重点讲解如何通过arguments向子窗口传递任意类型数据,以及如何利用window.returnValue将结果返回给父窗口,附带parent.htm与modal.htm的完整代码示例。

showModalDialog方法基本语法与参数详解

showModalDialog方法的具体调用方式如下

var returnValue = window.showModalDialog(url [, arguments] [,features]);

url为必选参数,类型为字符串,用于指定对话框需显示的文档地址

arguments为可选参数,类型为变体,用于向对话框传递数据。传递的参数类型不受限制,可包含数组等复杂结构,子窗口通过window.dialogArguments属性获取传入的参数

features为可选参数,类型为字符串,用于定义对话框的外观属性。各属性之间使用分号“;”分隔

dialogHeight:设定对话框高度,最小值为100px dialogWidth:设定对话框宽度 dialogLeft:设定对话框距离屏幕左侧的距离 dialogTop:设定对话框距离屏幕顶部的距离 center:{ yes | no | 1 | 0 }:控制是否居中,默认值为yes,但允许同时指定高度和宽度 help:{yes | no | 1 | 0 }:控制是否显示帮助按钮,默认值为yes resizable:{yes | no | 1 | 0 } [IE5+]:控制是否允许调整大小,默认值为no status:{yes | no | 1 | 0 } [IE5+]:控制是否显示状态栏,默认值为yes[ Modeless]或no[Modal] scroll:{ yes | no | 1 | 0 | on | off }:控制是否显示滚动条,默认值为yes

父子窗口数据传递与返回值获取实例

参数传递机制说明

1. 向对话框传递参数需通过arguments进行,类型不限。字符串类型最大支持4096个字符,同时也支持传递对象。示例文件为parent.htm

代码如下

<script>
var obj = new Object();
obj.name="justflyhigh.com";
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>
var result =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(result);
</script>

modal.htm


代码如下

<script>
window.returnValue="https://www.jb51.net";
</script>
作者最新文章