Gibt es einen Konsolenlogger für IE? Ich versuche, eine Reihe von Tests / Zusicherungen in der Konsole zu protokollieren, kann dies jedoch im IE nicht tun.
Gibt es einen Konsolenlogger für IE? Ich versuche, eine Reihe von Tests / Zusicherungen in der Konsole zu protokollieren, kann dies jedoch im IE nicht tun.
Antworten:
Sie können auf die IE8-Skriptkonsole zugreifen, indem Sie die "Developer Tools" (F12) starten. Klicken Sie auf die Registerkarte "Skript" und dann rechts auf "Konsole".
In Ihrem JavaScript-Code können Sie eine der folgenden Aktionen ausführen:
<script type="text/javascript">
console.log('some msg');
console.info('information');
console.warn('some warning');
console.error('some error');
console.assert(false, 'YOU FAIL');
</script>
Sie können die Konsole auch löschen, indem Sie anrufen console.clear()
.
HINWEIS: Anscheinend müssen Sie zuerst die Entwicklertools starten und dann Ihre Seite aktualisieren, damit dies funktioniert.
console.log()
. Schützen Sie Ihre Anrufe immer mitwindow.console && console.log('stuff');
Seit Version 8 verfügt Internet Explorer wie andere Browser über eine eigene Konsole. Wenn die Konsole jedoch nicht aktiviert ist, ist das console
Objekt nicht vorhanden und ein Aufruf von löst console.log
einen Fehler aus.
Eine andere Option ist die Verwendung von log4javascript (vollständige Offenlegung: von mir geschrieben), das über eine eigene Protokollierungskonsole verfügt, die in allen gängigen Browsern funktioniert, einschließlich IE> = 5, sowie einen Wrapper für die eigene Konsole des Browsers, der das Problem einer undefinierten vermeidet console
.
Wenn Sie am Ende console.log()
Befehle für die Produktion freigeben , müssen Sie eine Korrektur für den IE vornehmen, da diese console
nur im F12
Debugging-Modus definiert wird.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[offensichtlich entfernen Sie die Warnung (msg); Aussage, sobald Sie überprüft haben, dass es funktioniert]
Siehe auch 'Konsole' ist ein undefinierter Fehler für Internet Explorer für andere Lösungen und weitere Details
Es gibt Firebug Lite, das viele Firebug-Funktionen im IE bietet.
John Resig (Erfinder von jQuery) hat in seinem Buch "Secrets of Javascript Ninja" einen wirklich einfachen Code, der browserübergreifende Probleme mit console.log behandelt. Er erklärt, dass er eine Protokollnachricht haben möchte, die mit allen Browsern funktioniert, und wie er sie codiert hat:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
in diesem Snippet fehlt. :)
Für die auf console.log beschränkte IE8- oder Konsolenunterstützung (kein Debug, Trace, ...) können Sie Folgendes tun:
Wenn console ODER console.log undefiniert ist: Erstellen Sie Dummy-Funktionen für Konsolenfunktionen (Trace, Debug, Log, ...)
window.console = {
debug : function() {}, ...};
Andernfalls, wenn console.log definiert ist (IE8) UND console.debug (irgendein anderes) nicht definiert ist: Leiten Sie alle Protokollierungsfunktionen zu console.log um, damit diese Protokolle beibehalten werden können!
window.console = {
debug : window.console.log, ...};
Ich bin mir nicht sicher, ob Assert in verschiedenen IE-Versionen unterstützt wird, aber Vorschläge sind willkommen.
Sie können einen browserübergreifenden Wrapper verwenden: https://github.com/MichaelZelensky/log.js
Für ältere IE-Versionen (vor IE8) ist es nicht einfach, das Konsolenprotokoll in der IE Developer Toolbar anzuzeigen, nachdem ich stundenlang recherchiert und viele verschiedene Lösungen ausprobiert habe. Schließlich ist die folgende Symbolleiste ein großartiges Tool für mich:
Der Hauptvorteil davon ist die Bereitstellung einer Konsole für IE6 oder IE7, sodass Sie den Fehler sehen können (im Konsolenprotokoll).
Ich habe immer so etwas gemacht:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
und von diesem Punkt an verwenden Sie einfach immer log (...), seien Sie nicht zu ausgefallen mit der Konsole. [warn | error | und so weiter], halten Sie es einfach. Normalerweise bevorzuge ich eine einfache Lösung gegenüber ausgefallenen externen Bibliotheken, die sich normalerweise auszahlt.
einfache Möglichkeit, Probleme mit dem IE zu vermeiden (mit nicht vorhandenem console.log)
console.log()
funktioniert nur, wenn das dev-Tool des IE geöffnet ist (ja, der IE ist beschissen). siehe stackoverflow.com/questions/7742781/…