关于chrome等浏览器不支持showModalDialog的解决方案
生活随笔
收集整理的這篇文章主要介紹了
关于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 2015-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所帶的參數可以是一樣的,彈出的窗口不會改變
轉載于:https://www.cnblogs.com/bo10296/p/4320000.html
總結
以上是生活随笔為你收集整理的关于chrome等浏览器不支持showModalDialog的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nodeJS之eventproxy源码解
- 下一篇: grunt学习