1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于chrome等浏览器不支持showModalDialog的解决方案

关于chrome等浏览器不支持showModalDialog的解决方案

时间:2022-06-09 16:10:25

相关推荐

关于chrome等浏览器不支持showModalDialog的解决方案

目前,新版本的chrome和opera、Firefox等浏览器已经不支持showModalDialog方法。

如果是没有接收返回值的,可以直接将window.showModalDialog改为window.open。

需要接收返回值的情况:

父页面设置:

var uIdName;function chooseuser_m() {var num = Math.random();var str = "" + document.getElementById('wfUserIDs').value + "";try {uIdName = window.showModalDialog("../../Choose/ChooseUser.aspx?tmp=" + num + "&rqstr=" + str + "", "window", "dialogWidth:650px;DialogHeight=520px;status:no;scroll=no;help:no");var arr = uIdName.split("|");for (var i = 0; i < arr.length; i++) {document.getElementById("wfUserIDs").value = arr[0];document.getElementById("wfUserNames").value = arr[1];}}catch (e) {window.open("../../Choose/ChooseUser.aspx?tmp=" + num + "&rqstr=" + str + "", "window", "dialogWidth:650px;DialogHeight=520px;status:no;scroll=no;help:no");}}

这里先将原来的方法改成window.open,接下来是子页面的设置:

function sendFromChild() {if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)) {window.returnValue = chkSelect(); //chkSelect()获取一组数据}else {chkSelectChrome();}window.close();}//for chrome -03-07function chkSelectChrome() {var uIdName = chkSelect();var arr = uIdName.split("|");for (var i = 0; i < arr.length; i++) {opener.document.all.wfUserIDs.value = arr[0]; //wfUserIDsopener.document.all.wfUserNames.value = arr[1];}}

这里只判断非IE下的方法,在chrome下测试通过,其他非IE浏览器没有测试。

opener.document.all.IDName.value //直接对父窗体赋值 ID必须对应 否则报错

window.showModalDialog与window.open所带的参数可以是一样的,弹出的窗口不会改变

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。