JS打开模态窗口showModalDialog

不念不忘少年蓝@ 2022-05-14 02:23 679阅读 0赞

“人人尽说江南好,游人只合江南老”
今天在使用谷歌浏览器通过JS打开模态窗口时,出现如下错误:

  1. Uncaught TypeError: window.showModalDialog is not a function

这里写图片描述
出现该问题的原因是,谷歌浏览器已经不支持该方法了。
解决方法:

  1. //兼容谷歌浏览器,如果不能直接打开模态窗口,则自定义一个窗口
  2. if(!window.showModalDialog){
  3. window.showModalDialog=function(url,name,option){
  4. if(window.hasOpenWindow){
  5. window.newWindow.focus();
  6. }
  7. var re = new RegExp(";", "g");
  8. var option = option.replace(re, '","'); //把option转为json字符串
  9. var re2 = new RegExp(":", "g");
  10. option = '{"'+option.replace(re2, '":"')+'"}';
  11. option = JSON.parse(option);
  12. var openOption = 'width='+parseInt(option.dialogWidth)+',height='+parseInt(option.dialogHeight)+',left='+(window.screen.width-parseInt(option.dialogWidth))/2+',top='+(window.screen.height-30-parseInt(option.dialogHeight))/2;
  13. window.hasOpenWindow = true;
  14. window.newWindow = window.open(url,name,openOption);
  15. }
  16. }
  17. function showModal(){
  18. window.showModalDialog("http://www.baidu.com",window,"dialogWidth:500px;dialogHeight:550px");
  19. }

该方法亲测可行。

发表评论

表情:
评论列表 (有 0 条评论,679人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js父子页面窗口传值

           今天闲来无事,练习父页面中打开一个模态窗口,同时可以将父页面的某些数据传到模态窗口,并将模态窗口的数据回传到父页面。在chrome浏览器上有问题通过bug调试,c

    相关 Angularjs 窗口

    对话框的两种类型:模态类型和非模态类型 1 模态窗口 打开模态窗口后,只要不关闭该窗口,鼠标焦点或者光标就会一直停留在该窗口上。只有关闭该窗口后,调用窗口才能继续