var Fb = {}; //An empty object literal for holding the function
Fb.log = function(obj, consoleMethod) {
if (window.console && window.console.firebug && window.console.firebug.replace(/^\s\s*/, '').replace(/\s\s*$/, '') !== '') {
if (typeof consoleMethod === "string" && typeof console[consoleMethod] === "function") {
console[consoleMethod](obj);
} else {
console.log(obj);
}
}
}
Wenn Sie `console.log`, `console.info` usw. Nachrichten in Ihrem JavaScript-Code belassen und die Seite in einem Browser wie IE öffnen, kann dies das Laden der Seite vollständig unterbrechen, da „console not defined“ angezeigt wird, insbesondere wenn Ihr Benutzer einen Browser verwendet, der kein IE8 ist.
Dieses Code-Snippet ermöglicht es Ihnen, die Protokollnachrichten nach Wunsch in Ihrem Code zu belassen, und Ihre Seite wird in IE oder jedem anderen Browser, der keine Konsolenmeldungen unterstützt, korrekt gerendert.
Verwendung
Fb.log("This will be logged");
Fb.log("This will be displayed in console as info", "info");
Die Funktion `FB.log` akzeptiert zwei Parameter: Der erste ist das „Item“, das Sie in der Firebug-Konsole anzeigen möchten, und der zweite ist die Firebug-Methode, die Sie für die Protokollierung verwenden möchten, wie `info`, `error` usw. Wenn Sie den zweiten Parameter weglassen, ist das Ergebnis mit `console.log()` gleichwertig.
Nur einfacher Log-Weg
function ltc(what) {
try {
console.log(what);
}
catch (e) {}
finally {
return;
}
}
ltc("message");
Oder (ganz oben in Ihrem Code) könnten Sie einfach `console.log()` überschreiben, falls es nicht existiert, mit einer leeren Funktion.
Dies entfernt die Auswertung der Bedingung bei jedem Aufruf und hält den Funktionsaufruf einheitlich zu anderen Anwendungen. Neue Entwickler im Projekt werden sofort verstehen, wofür `console.log()` gedacht ist, im Gegensatz zu möglicher Verwirrung, die durch `Fb.log()` entstehen könnte.
Hallo Benjamin,
1. Der von Ihnen erwähnte Ansatz funktioniert, wenn jemand nur `console.log` aus dem JS heraus verwendet.
Die Programmierer könnten jede von Firebug unterstützte Protokollierungsfunktion verwenden, wie `info`, `error` usw.
In einer solchen Situation kann dies schwierig sein.
2. Ich habe ein benutzerdefiniertes Objekt-Literal verwendet, einfach weil dies eine benutzerdefinierte Funktion ist und ich es vermeiden wollte, mit dem Konsolenobjekt von Firebug zu experimentieren.
Danke!
Ich habe Zeilennummern vermisst, also habe ich dies ein wenig modifiziert und diese hinzugefügt, zusammen mit der „Unterstützung“ für `console.count` & `console.time|timeEnd`
Um einen Fehler anzuzeigen, würden Sie dies tun, wobei 55 Ihre Dateizeilennummer ist.
Und ein einfaches „info“ wäre dies
Und zum Zählen ( _Referenz: http://bit.ly/d5QdJi _ ) schreiben Sie dies
Um Ereignisse zu messen, benötigen Sie nur 2 Parameter, eine eindeutige Zahl/Zeichenkette und die Wörter „time“ & „timeEnd“.
Um diesen Timer zu stoppen, verwenden Sie
Entschuldigung für die vielen Kommentare, aber ich dachte, dies könnte nützlich sein…
Wenn alles, was Sie wollen, ist, den Fehler in Firefox zu vermeiden, sollte dies ausreichen
Ich habe mich gefragt, ob es einen besseren Weg gibt, dies zu handhaben, oder ob dieser Code heute noch gut ist?
window.console && console.log(“ Siehe meinen Code im Kommentar unten”);
Es gibt einen Weg, es niedrig zu halten, er verwendet die Funktionen von JavaScript, um `console.loggings` sicher zu umhüllen
–> window.console && console.log(“Diese einzelne Zeile Ausführung wird Sie nicht enttäuschen !!!”);
Vorsicht: `window.console.firebug` wurde in Firebug 1.9.0 entfernt (Siehe in https://getfirebug.com/wiki/index.php/Console_API#Note und http://code.google.com/p/fbug/issues/detail?id=4772.
Ich habe kürzlich ein `console.log`-Skript erstellt, das die Browserkonsole nachahmt. Daher ist kein Firebug Lite erforderlich.
https://github.com/mikewgd/console-log