模态窗口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)

posted on   张不胖  阅读(3288)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示