IE6/7 hat standardmäßig keine Konsole.
In der Tat auch nicht Firefox - es wird von einem Plug-in namens Firebug bereitgestellt; Wenn Sie eine Firefox-Kopie verwenden, ohne dass Firebug installiert ist, erhalten Sie Fehler, die versuchen, console
genauso aufzurufen wie mit IE.
IE8/9 tun haben eine Konsole.
Chrome und Safari haben ein integriertes Konsolenobjekt, aber zählen Sie nicht darauf, dass es genauso funktioniert wie Firebug oder IE8.
Beachten Sie, dass das Konsolenobjekt in allen Browsern möglicherweise nur erstellt wird, wenn das Debugfenster geöffnet ist. Dies bedeutet, dass Ihr Code mit einem console.log
Aufruf in beliebigen Browser, nicht nur IE fehlschlagen kann.
In Ihrem Beispiel erstellen Sie im Wesentlichen ein Dummy-Objekt console
, wenn es nicht existiert, was eindeutig verhindern soll, dass Browser ohne Konsole abstürzen, wenn Sie console.log()
aufrufen. Aber du rufst console.log()
an, bevor dieser Code ausgeführt wird, also werden jene Browser ohne Konsole in dieser Zeile abstürzen. Sie sollten deshalb Ihre console.log("doc ready");
Zeile nach unten verschieben, damit sie nach dem Bit kommt, das erkennt, ob console
existiert.
Wenn die Konsole für IE existieren soll, gibt es eine Firebug-Version Firebug Lite, die in jedem Browser ausgeführt werden kann. Wenn Sie das ausführen, wird das Objekt console
erstellt.
Beachten Sie jedoch, dass es nur ausgeführt werden kann, nachdem die Seite geladen wurde, so dass Sie es niemals dazu bringen können, Konsolenmeldungen in der Dokumentbereitschaftsfunktion anzuzeigen. Darüber hinaus kann das Konsolenobjekt möglicherweise nicht erstellt werden, wenn es bereits vorhanden ist. Daher kann der Code, den Sie im Dokument zum Erstellen eines Dummy-Konsolenobjekts bereit haben, möglicherweise verhindern, dass Firebug Lite ordnungsgemäß funktioniert.
Schließlich, während der Verwendung der Konsole ist fantastisch für Debugging-Zwecke, stellen Sie sicher, dass Sie nie Live-Code mit Aufrufen an console.log
, auch wenn Sie planen, sie nur zu Debugging-Zwecken später verwenden. Wie Sie bereits gesehen haben, können sie dazu führen, dass ein Browser den Code nicht mehr ausführt, wenn er kein Konsolenobjekt hat, und es wird viele Live-Benutzer geben, die ihn nicht haben. Behalten Sie also Acht, Probleme für Live-Benutzer zu verursachen : Am besten ist es, sicherzustellen, dass Sie alle Anrufe an die Konsole vor dem Versand des Codes entfernt haben.
Konsole funktioniert auch in Chrome – darioo
Falsch, Sie müssen Firebug Lite für die Konsole in IE7 und unter installieren. IE8 hat eine Konsole, die mit keiner der Protokollierungsmethoden wie Firebug so robust ist, aber sie ist da. – epascarello