模態窗口showModalDialog 的瀏覽器兼容edge解決方案


之前寫的showModalDialog()方法,只能在IE中使用,在edge瀏覽器中會報錯。顯示Undefined。

后來發現是Edge瀏覽器不支持該方法,最快的解決辦法就是轉換一下。

原方法:

1 function preview() {
2         var result = showModalDialog('preview.aspx?Id=' + document.getElementById('hidpreviewid').value, window, 'dialogWidth:1000px;dialogHeight:620px;center:yes;help:no;resizable:no;status:no'); 
3             if (result) {
4 
5             }
6             else {
7 
8             }
9         }

后來在此方法下面加了一個轉換的方法:

 1 function showModalDialogN(uri, args, opts) {
 2             if (!window.showModalDialog) {
 3                 showModalDialogN = function (uri, args, opts) {
 4                     opts = opts.replace(/:/g, '=')
 5                         .replace(/;/g, ',')
 6                         .replace('dialogWidth', 'width')
 7                         .replace('dialogHeight', 'height')
 8                         .replace('dialogtop', 'top')
 9                         .replace('dialogleft', 'left')
10                         .replace('scroll', 'scrollbars');
11                     window.open(uri, '', opts).dialogArguments = args;
12                 };
13             } else {
14                 window.showModalDialog(uri, args, opts);
15             }
16         }

 

然后把原方法中的showModalDialog直接改成showModalDialogN。完美解決!

 

感謝原作者:https://blog.csdn.net/ambit_tsai/article/details/80633290

還有整理的博主:模態窗口showModalDialog的瀏覽器兼容解決方案【改】 - 戈博折刀 - 博客園 (cnblogs.com)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM