'Konsole' ist ein nicht definierter Fehler für Internet Explorer
Ich bin mit Firebug und habe einige Aussagen wie:
console.log("...");
meiner Seite. Im IE8 (vermutlich frühere Versionen) bekomme ich script Fehler sagen: 'console' ist undefiniert. Ich habe versucht, dies an der Spitze meiner Seite:
<script type="text/javascript">
if (!console) console = {log: function() {}};
</script>
trotzdem bekomme ich den Fehler. Jeder Weg, um loszuwerden, die Fehler?
Kommentar zu dem Problem
Verwenden Sie
typeof
in Ihrem wenn, wird es vermeiden, undefined Fehler: if(typeof console === "undefined") { var console = { log: function (logMsg -) { } };}
console.log() funktioniert nur, wenn der IE-dev-tool wird geöffnet (ja IE ist beschissen). siehe stackoverflow.com/questions/7742781/...
Beste Antwort auf diese Frage ist stackoverflow.com/a/16916941/2274855
@Aprillion link defekt ist, dann verwenden Sie dieses anstatt: github.com/h5bp/html5-boilerplate/blob/master/src/js/plugins.js
InformationsquelleAutor der Frage user246114 | 2010-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
Eine nicht definierte variable nicht direkt in Anspruch genommen werden. Jedoch, alle globalen Variablen werden in Attribute mit dem gleichen Namen von den globalen Kontext (
window
im Fall der Browser), und Zugriff auf ein nicht definiertes Attribut ist in Ordnung.Oder verwenden Sie
if (typeof console === 'undefined') console = ...
wenn Sie möchten, um zu vermeiden, die Magische variablewindow
finden Sie @Tim das Down-Antwort.InformationsquelleAutor der Antwort kennytm
Fügen Sie den folgenden an der Spitze der JavaScript (vor der Verwendung der Konsole):
Die Funktion closure-wrapper um den Umfang der Variablen keine Variablen definieren. Diese schützt gegen beide undefined
console
undefinedconsole.debug
(und andere fehlende Methoden).EDIT: bemerkte ich, dass HTML5 Boilerplate benutzt ähnlichen code in seine js/plugins.js Datei, wenn Sie auf der Suche nach einer Lösung (wahrscheinlich) gehalten werden up-to-date.
InformationsquelleAutor der Antwort Peter Tseng
Andere alternative ist die
typeof
Betreiber:Doch eine andere alternative ist die Verwendung einer logging-Bibliothek, wie meine eigenen log4javascript.
InformationsquelleAutor der Antwort Tim Down
Für eine stabilere Lösung ist, verwenden Sie dieses Stück code (aus der twitter-source-code):
InformationsquelleAutor der Antwort Vinícius Moraes
In meinen Skripten, die ich entweder benutzen Sie die Kurzform:
oder, wenn es nicht möglich oder durchführbar zu Bearbeiten jede Konsole.log-line, ich erstellen Sie eine gefälschte Konsole:
InformationsquelleAutor der Antwort iblamefish
Können Sie
console.log()
wenn SieDeveloper Tools
im IE8 geöffnet und Sie können auch verwenden dieConsole
Textfeld auf der Registerkarte "Skript".InformationsquelleAutor der Antwort
InformationsquelleAutor der Antwort insign
Im IE9, wenn die Konsole nicht geöffnet wird, diesen code:
zeigen "Objekt", aber dieser code
werfen TypeError-Ausnahme, aber nicht zurück undefinierten Wert;
Also garantiert-version der code wird ungefähr so Aussehen:
InformationsquelleAutor der Antwort bonbonez
Bin ich nur mit der Konsole.log-in meinem code. Also ich habe eine sehr kurze 2 liner
InformationsquelleAutor der Antwort Ruben Decrop
Basiert auf zwei vorherigen Antworten durch
und die Dokumentationen für
Hier ist eine best-effort-Implementierung für die Ausgabe, das heißt, wenn es eine Konsole.melden Sie die tatsächlich vorhanden ist, füllt er die Lücken für nicht vorhandene Methoden über die Konsole.log.
Beispielsweise für IE6/7 ersetzen Sie die Protokollierung mit alert (blöd, aber funktioniert) und dann die unten monster (ich nannte es console.js):
[Fühlen Sie sich frei, um Kommentare zu entfernen, wie Sie sehen, passen, ich ließ Sie in der Referenz, ein minimizer können Sie anzupacken]:
und console.js:
InformationsquelleAutor der Antwort TWiStErRob
Bemerkt, dass OP ist mit Firebug mit IE, so dass Firebug Lite. Dies ist ein funky situation als Konsole wird definiert im IE, wenn das debugger-Fenster wird geöffnet, aber was passiert, wenn Firebug schon läuft? Nicht sicher, aber vielleicht ist das "firebugx.js" die Methode könnte eine gute Möglichkeit zu testen, in dieser situation:
Quelle:
https://code.google.com/p/fbug/source/browse/branches/firebug1.2/lite/firebugx.js?r=187
(links aktualisiert 12/2014)
InformationsquelleAutor der Antwort Roberto
Ich bin mit fauxconsole; modifizierte ich die css ein wenig, so dass es sieht schöner aus, funktioniert aber sehr gut.
InformationsquelleAutor der Antwort Stijn Geukens
Zum Debuggen im IE, überprüfen Sie heraus dieses log4javascript
InformationsquelleAutor der Antwort Praveen
Für den IE8 oder console-support beschränkt sich auf die Konsole.log (no debug, trace, ...) können Sie Folgendes tun:
Ob Konsole ODER Konsole.log undefined: Erstellen von dummy-Funktionen für
Konsole Funktionen (trace, debug, log, ...)
window.console = {
debug : function() {}, ...};
Else if console.Protokoll definiert ist (IE8) UND Konsole.debug (alle anderen) ist nicht definiert: umleiten alle logging-Funktionen auf die Konsole.Protokoll, das erlaubt, um diese logs !
window.console = {
debug : window.console.log, ...};
Nicht sicher über die assert-Unterstützung in diversen IE-Versionen, aber alle Vorschläge sind willkommen. Auch dies geschrieben, Antwort hier: Wie kann ich die Konsole Protokollierung in Internet Explorer?
InformationsquelleAutor der Antwort Christophe Roussy
InformationsquelleAutor der Antwort David Glass
Können Sie die unten zu geben, einen zusätzlichen Grad der Versicherung, dass Sie haben alle Grundlagen abgedeckt. Mit
typeof
ersten keineundefined
Fehler. Mit===
wird auch dafür sorgen, dass der name und der Typ ist tatsächlich der string "undefined". Schließlich werden Sie wollen, fügen Sie einen parameter an die Funktion Unterschrift (ich wähltelogMsg
willkürlich) um die Konsistenz zu gewährleisten, da Sie weitergeben, was Sie wollen gedruckt auf der Konsole die log-Funktion. Diese halten Sie auch intellisense genau und vermeidet irgendwelche Warnungen/Fehler im JS bewusst IDE.InformationsquelleAutor der Antwort Flak DiNenno
Manchmal console funktioniert im IE8/9, aber nicht zu anderen Zeiten. Dieses erratische Verhalten hängt davon ab, ob Sie developer tools öffnen und ist beschrieben in stackoverflow-Frage Tut IE9-support-Konsole.log, und es ist eine echte Funktion?
InformationsquelleAutor der Antwort Anon
Begegnet ähnliches problem mit der Konsole.log-in child-windows in IE9, erstellt durch das Fenster.die öffnen-Funktion.
Es scheint, dass in diesem Fall die Konsole ist nur definiert, im übergeordneten Fenster und undefiniert in den child-Fenster, bis Sie aktualisieren Sie. Dasselbe gilt für die Kinder von child-windows.
Ich, mit diesem Problem umzugehen, indem er log-in neben-Funktion (unten ist das fragment des Moduls)
InformationsquelleAutor der Antwort Max Venediktov
Stub-Konsole im Typoskript:
InformationsquelleAutor der Antwort devi
Nachdem ich ach so viele Probleme mit diesem Ding (es ist schwer zu Debuggen, Fehler da, wenn Sie öffnen Sie die Entwickler-Konsole der Fehler nicht mehr passiert!!!) Ich entschied mich für einen overkill-code zu haben nie diese Mühe machen, immer wieder:
Ich persönlich immer nur Konsole.log und Konsole.Fehler, aber dieser code kümmert sich um alle anderen Funktionen, wie gezeigt, in der Mozzila Developer Network: https://developer.mozilla.org/en-US/docs/Web/API/console.
Setzen Sie einfach diesen code auf der Oberseite Ihrer Seite und Sie sind fertig für immer mit diesem.
InformationsquelleAutor der Antwort Hoffmann
Können Sie die Konsole.log(...) direkt in Firefox aber nicht in IEs. In den IEs verwenden Sie die Fenster.console.
InformationsquelleAutor der Antwort Mohit Kumar