Wie kann ich eine Nachricht an die Fehlerkonsole drucken, vorzugsweise mit einer Variablen?
Zum Beispiel so etwas wie:
print('x=%d', x);
javascript
debugging
Mark Harrison
quelle
quelle
Antworten:
Installieren Sie Firebug und dann können Sie
console.log(...)
undconsole.debug(...)
usw. verwenden ( weitere Informationen finden Sie in der Dokumentation ).quelle
console.log()
usw. in allen Browsern, einschließlich IE, funktionieren sollte. In allen Fällen muss jedoch das Debugger-Fenster zu diesem Zeitpunkt geöffnet sein, da sonst Aufrufe vonconsole
Fehler verursachen.Sie können Ihren Protokollierungsnachrichten auch CSS hinzufügen:
quelle
console.log
Verwendung CSS in der Konsole verwenden können: |Ausnahmen werden in der JavaScript-Konsole protokolliert. Sie können dies verwenden, wenn Sie Firebug deaktiviert lassen möchten .
Verwendungszweck:
quelle
throw
in ein eingewickelt werden musssetTimeout
?Eine gute Möglichkeit, dies browserübergreifend zu tun, ist das Debuggen von JavaScript: Werfen Sie Ihre Warnungen weg! .
quelle
throw()
ist definitiv nicht der Weg, dies zu tun. Sie werden früher oder später in Schwierigkeiten geraten. für mich war es früher :(Hier finden Sie eine Lösung für die wörtliche Frage, wie eine Nachricht an die Fehlerkonsole des Browsers und nicht an die Debugger-Konsole gedruckt werden soll. (Es kann gute Gründe geben, den Debugger zu umgehen.)
Wie ich in Kommentaren zu dem Vorschlag bemerkt habe, einen Fehler auszulösen, um eine Nachricht in der Fehlerkonsole zu erhalten, besteht ein Problem darin, dass dies den Ausführungsthread unterbricht. Wenn Sie den Thread nicht unterbrechen möchten, können Sie den Fehler in einen separaten Thread werfen, der mit setTimeout erstellt wurde. Daher meine Lösung (die sich als eine Ausarbeitung der von Ivo Danihelka herausstellt):
Ich gebe die Zeit in Millisekunden seit der Startzeit an, da das Zeitlimit die Reihenfolge verzerren kann, in der Sie möglicherweise die Nachrichten sehen.
Das zweite Argument für die Error-Methode betrifft den Dateinamen, bei dem es sich um eine leere Zeichenfolge handelt, um die Ausgabe des nutzlosen Dateinamens und der Zeilennummer zu verhindern. Es ist möglich, die Anruferfunktion zu erhalten, jedoch nicht auf einfache, browserunabhängige Weise.
Es wäre schön, wenn wir die Nachricht mit einem Warn- oder Nachrichtensymbol anstelle des Fehlersymbols anzeigen könnten, aber ich kann keinen Weg finden, dies zu tun.
Ein weiteres Problem bei der Verwendung von Throw besteht darin, dass es von einem umschließenden Try-Catch gefangen und weggeworfen werden kann. Wenn Sie den Throw in einen separaten Faden legen, wird dieses Hindernis ebenfalls vermieden. Es gibt jedoch noch eine andere Möglichkeit, wie der Fehler abgefangen werden kann, wenn der window.onerror-Handler durch einen ersetzt wird, der etwas anderes bewirkt. Kann dir da nicht helfen.
quelle
Wenn Sie Safari verwenden , können Sie schreiben
und es erscheint direkt auf der Konsole des Browsers.
quelle
console.log()
.console.log()
. Es war bis vor kurzem nicht wahr.Um die Frage tatsächlich zu beantworten:
Anstelle von Fehlern können Sie auch info, log oder warn verwenden.
quelle
console.error(..)
um eine nicht standardmäßige Funktion, die nicht in der Produktion verwendet werden sollte. Wie sehen Sie das? Haben Sie Vorschläge für einen unerfahrenen Programmierer, derconsole.error
vs verwendetconsole.log
?console.log(...)
"nicht standardisiert". In dieser Hinsichtconsole.error
ist so stabil wieconsole.log
.Wenn Sie Firebug verwenden und auch IE, Safari oder Opera unterstützen müssen, fügt Firebug Lite diesen Browsern die Unterstützung console.log () hinzu.
quelle
Der WebKit Web Inspector unterstützt auch die Konsolen-API von Firebug (nur eine kleine Ergänzung zu Dans Antwort ).
quelle
Ein Hinweis zu 'throw ()', der oben erwähnt wurde. Es scheint, dass die Ausführung der Seite vollständig gestoppt wird (ich habe IE8 überprüft), daher ist es nicht sehr nützlich, um "laufende Prozesse" zu protokollieren (um eine bestimmte Variable zu verfolgen ...)
Mein Vorschlag ist vielleicht, irgendwo in Ihrem Dokument ein Textbereichselement hinzuzufügen und seinen Wert (der seinen Text ändern würde ) zu ändern (oder an ihn anzuhängen ), um Informationen bei Bedarf zu protokollieren ...
quelle
console.log()
,throw()
etc. Darüber hinaus gibt es nichts falsch mit dem Verhalten ,throw()
wie Sie scheinen zu implizieren , - die Tatsache , dass es stoppt die Ausführung ist beabsichtigt und dokumentiert ( Entwickler. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ) und es stimmt damit überein, wie Ausnahmen in anderen Programmiersprachen ausgelöst / abgefangen werden. (Wenn Sie den Inhalt einer Variablen protokollieren möchten, ohne die Ausführung zu stoppen,console.log()
ist dies der Fall .)console.log
- also gaben die Leute Alternativen. Es ist natürlich beabsichtigt,throw()
die Ausführung zu stoppen , niemand hat gesagt, dass dies nicht der Fall ist. Das ist der Grund, warum es normalerweise keine gute Möglichkeit ist, Debug-Informationen zur Laufzeit zu protokollieren, was das OP wollte ...Wie immer ist Internet Explorer der große Elefant in Rollschuhen, der Sie davon abhält, einfach nur zu benutzen
console.log()
.Das Protokoll von jQuery kann recht einfach angepasst werden, ist jedoch ein Problem, da es überall hinzugefügt werden muss. Eine Lösung, wenn Sie jQuery verwenden, besteht darin, es am Ende in Ihre jQuery-Datei einzufügen.
quelle
Unter https://developer.chrome.com/devtools/docs/console-api finden Sie eine vollständige Referenz zur Konsolen-API
In diesem Fall wäre das Objekt Ihre Fehlerzeichenfolge
quelle
quelle
Ich arbeite für mich. Ich suche danach. Ich habe Firefox verwendet. Hier ist mein Skript.
funktioniert in Firefox und Chrome.
quelle
Der einfachste Weg, dies zu tun, ist:
quelle
Um Ihre Frage zu beantworten, können Sie ES6-Funktionen verwenden:
quelle
Dies wird nicht auf der Konsole gedruckt, sondern öffnet ein Warn-Popup mit Ihrer Nachricht, das für einige Fehlerbehebungen hilfreich sein kann:
mach einfach:
quelle
Mit der es6-Syntax können Sie Folgendes verwenden:
quelle