suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Was soll ich tun, wenn Chrome keine showModalDialog-Methode hat?

Beim Besuch einiger Router-Einstellungsseiten kann Chrome das Einstellungsfenster nicht normal öffnen, da es relativ alt ist.
In der Konsole wird ein Fehler gemeldet: showModalDialog-Methode existiert nicht.

PHP中文网PHP中文网2730 Tage vor832

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-07-05 10:42:22

    直接把对应的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>

    Antwort
    0
  • StornierenAntwort