window.showModalDialog() 过时替代方案

本文详细介绍了window.showModalDialog方法的过时情况及其在不同浏览器中的废弃状态,建议开发者转向使用window.open方法。提供了showModalDialog到window.open的替换实例,并展示了如何在子页面与父页面间传递数据。同时,讨论了在项目维护中如何更新这些对话框功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、window.showModalDialog 方法说明

window.showModalDialog( ) 方法的作用是创建和展示一个指向特定网页的模态对话框。

该方法已经过时,特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

此方法已在Chrome 43和Firefox 56中删除,当前仅IE浏览器支持该特性。

如果正在开发的功能,需要使用到JS的对话框,应该使用window.open( ) 方法。如果是对老项目进行维护,具体的替换方法见第三节。

showModalDialog 语法:

returnVal = window.showModalDialog(uri, arguments, options);

其中:

  1. returnVal 集合类型(Set)返回值。由uri指定的页面返回。
  2. uri 要在模态对话框中打开的页面URI。
  3. arguments 可选参数。可以通过该参数将需要的值传入对话框; 参数可以通过 window 对象的window.dialogArguments 属性获取。
  4. options 可选字符串参数。用于设置对话框打开的样式,使用一个或多个逗号分隔。

 二、window.open 方法说明

window.open( ) 方法的作用是打开一个新的浏览器窗口或查找一个已命名的窗口。

open 语法:

window.open(url, name, features, replace);

其中:

  1. url 可选参数,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
  2. name 可选参数,声明了新窗口的名称。也可以是一个由逗号分隔的特征列表,包括数字、字母和下划线,该字符。
  3. features 可选参数,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。
  4. replace 可选boolean参数,规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。

三、替换方法

将showModalDialog 方法中的uri 替换到open方法的 url,options 替换到 features。即:

### 替换实例
returnVal = window.showModalDialog("www.baidu.com", ["id":10086], "dialogwidth=200,dialogheight=200");

window.open("www.baidu.com", ["id":10086], "width=200,height=200");

关于子页面给父页面传值,实例如下:

### 父页面
### 参数是通过子页面的window.opener方法,操作父页面的元素进行传参
window.open("www.school.com/selSchool", "选择报考学校", "width=200,height=200,left=200,top=160");
### 子页面
### 给父页面的id为schoolCode的隐藏域赋值
window.opener.document.getElementById("schoolCode").value = schoolCode;
### 给父页面的id为schoolName的span或div赋值
$(window.opener.document.getElementById("schoolName")).text(schoolName);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值