为了账号安全,请及时绑定邮箱和手机立即绑定

chrome 没有showModalDialog方法怎么办

chrome 没有showModalDialog方法怎么办

拉丁的传说 2018-11-21 18:15:27
在访问一些路由器设置页面的时候,由于比较老,chrome竟然无法正常弹出设置窗口,console里报错:showModalDialog方法不存在
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

直接把对应的showModalDialog方法改成open就可以了

另stackoverflow上的代码,但是有时候不起作用

<script type="text/javascript">

  // fix for deprecated method in Chrome 37

  if (!window.showModalDialog) {

     window.showModalDialog = function (arg1, arg2, arg3) {


        var w;

        var h;

        var resizable = "no";

        var scroll = "no";

        var status = "no";


        // get the modal specs

        var mdattrs = arg3.split(";");

        for (i = 0; i < mdattrs.length; i++) {

           var mdattr = mdattrs[i].split(":");


           var n = mdattr[0];

           var v = mdattr[1];

           if (n) { n = n.trim().toLowerCase(); }

           if (v) { v = v.trim().toLowerCase(); }


           if (n == "dialogheight") {

              h = v.replace("px", "");

           } else if (n == "dialogwidth") {

              w = v.replace("px", "");

           } else if (n == "resizable") {

              resizable = v;

           } else if (n == "scroll") {

              scroll = v;

           } else if (n == "status") {

              status = v;

           }

        }


        var left = window.screenX + (window.outerWidth / 2) - (w / 2);

        var top = window.screenY + (window.outerHeight / 2) - (h / 2);

        var targetWin = window.open(arg1, arg1, 'toolbar=no, location=no, directories=no, status=' + status + ', menubar=no, scrollbars=' + scroll + ', resizable=' + resizable + ', copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

        targetWin.focus();

     };

  }

</script>


查看完整回答
反对 回复 2018-12-29
  • 1 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信