web-dev-qa-db-de.com

Welche Browser unterstützen console.log ()?

Unterstützen dies alle Browser? Ich möchte mit console.log() einen Fehler ausgeben, habe mich aber gefragt, ob dies von allen Browsern unterstützt wird?

console.log("Error etc");
28
KingKongFrog

Nein, nicht alle Browser unterstützen console.log, da es nicht zum Standard gehört und eine Erweiterung des DOM ist. Daher sollten Sie nicht mit dessen Anwesenheit rechnen. Um Ihren Code belastbar zu machen, sollten Sie davon ausgehen, dass er nicht existiert existiert und entsprechend codiert.

13
Aaron McIver

Ich habe in der Vergangenheit so etwas gemacht:

// Log to native console if possible, alert otherwise
window.console = typeof window.console === 'undefined'
    ? {log:function(/* polymorphic */){alert(arguments)}}
    : window.console;

Sie können das an die "Spitze" Ihres JS stellen und es funktioniert ziemlich gut, wenn Sie mit einem Browser, der console nicht unterstützt, ein Debugging durchführen müssen und nicht verlangen, dass Sie Ihre andere JS-Quelle ändern, die bereits vorhanden ist Aufruf von console.log überall. Natürlich möchten Sie vielleicht etwas anderes als alert tun, um Ihren Verstand zu erhalten ...

http://jsfiddle.net/4dty5/

12
Madbreaks

Es ist jetzt August 2015, und ich denke, die aktuelle Antwort auf diese Frage lautet:

Alle wichtigen Browser auf mobilen Geräten und Desktops unterstützen console.log. ( kann ich benutzen )

Es ist kein Bestandteil eines Standards, aber es ist jetzt eine erwartete Leistung eines kompletten modernen Browsers.

Jedoch:

Wenn Sie alte Browser ( IE <10 ), mehr mobile Browser oder Benutzer mit experimentellen Browsern unterstützen müssen, ist es möglicherweise ratsam, eine Polyfill ( 1 , 2 ) zu verwenden. , 3 , 4 ), um sicherzustellen, dass window.console vorhanden ist.

Es funktioniert möglicherweise nicht in WebWorkers in allen Browsern. ( MDN )

In UC Browser und Opera Mini werden die Funktionen ausgeführt, die Ausgabe wird jedoch nicht angezeigt. ( kann ich benutzen )

Für die große Mehrheit der Internetbenutzer können wir jedoch davon ausgehen, dass console.log wie erwartet funktioniert.

9
joeytwiddle

Erstellen Sie eine Wrapper-Funktion:

function log(text) {
  if (window.console) {
     window.console.log(text);
  }
}
8
asgoth

Dieser Code prüft, ob die Funktion existiert, und erstellt einen Dummy, falls dies nicht der Fall ist. Gutschrift: StackOverflow

if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
7
ow3n

Die meisten Browser haben zwar Probleme, Internet Explorer 9 hat jedoch Probleme damit, dass kein Javascript ausgeführt wird, es sei denn, Sie haben das Debug-Fenster geöffnet. Wir haben Stunden gebraucht, um die Lösung für dieses Problem zu finden.

7
Menztrual

Hier ist eine Problemumgehung für den Fall, dass console.log() nicht verfügbar ist. Sie müssen den console.logs selbst abrufen.

  if (!window.console) window.console = {};
  if (!window.console.log) 
  {
    window.console.logs = [];
    window.console.log = function (string)
    {
      window.console.logs.Push(string);
    };
  }
1
Sprout Coder

Obwohl nicht alle Browser dies unterstützen, kann dies mit einem kleinen Code-Stück erreicht werden.

In seinem Buch "Secrets of Javascript Ninja" hat John Resig (Entwickler von jQuery) einen wirklich einfachen Code, der Cross-Browser-console.log-Ausgaben behandelt. Er erklärt, dass er eine Protokollnachricht haben möchte, die mit allen Browsern funktioniert, und wie er sie codiert:

 function log() {
  try {
     console.log.apply(console, arguments);
  } catch(e) {
  try {
     opera.postError.apply(opera, arguments);
  }
  catch(e) {
     alert(Array.prototype.join.call( arguments, " "));
  }
}
0
ambodi