Ich habe ein Objekt, das ich in IE8 untersuchen muss . Ich habe die Entwicklertools und console.log
, ihr Firebug-Äquivalent, ausprobiert.
console.log("Element: ", element);
console.log(element);
Ich bekomme nur die Saite
LOG: Element: [object Object]
anstelle eines klickbaren, überprüfbaren Dumps.
Ist es möglich, ein Objekt in das Protokoll zu laden und seine Mitglieder zu untersuchen, wie in Firebug?
Ich kann keine hausgemachte dump () - Funktion verwenden, weil das Element, das ich untersuchen möchte, so groß ist, dass der Browser bei mir abstürzt.
Hier ist eine Technik, die ich hilfreich gefunden habe:
Ein bisschen außerhalb des Themas (da es für DOM-Elemente nicht funktioniert), war es jedoch praktisch, die JSON.stringify (object ) zu verwenden, um einen JSON-String für das Objekt zu erhalten, der ziemlich lesbar ist.
@ Chris kommentierte @ Andys Antwort mit der einfachen Lösung: Verwenden Sie console.dir(myObj)
, um alle Details in der Konsole im IE auszudrucken. Danke Chris!
Wenn Sie mit bösem Code zu tun haben und console.log nicht verfügbar ist, versuchen Sie Folgendes in der Konsole:
out = []; for (i in your_object) { out.Push(i) } out.join("\n")
Ein Vorschlag ist die Verwendung von Firebug-Lite : Es umschließt das Konsolenobjekt obj, und Sie können das Ergebnis in IE wie in den meisten Firebug-Konsolen sehen.
Fügen Sie dieses Tag auf Ihrer Seite hinzu:
<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>
Und die Dinge werden funktionieren.
Es arbeitet an meinem System.
Hinweis: Versuchen Sie diese Lösung.
Dump in ein vorhandenes HMTL-Element
Ich habe bemerkt, dass IE 11 nach 1027 Zeichen die Konsolenzeilen entfernt: -/ Als ich ein großes Objekt zum Ablegen (12.000 Zeichen) hatte, legte ich es in ein vorhandenes DIV- oder TextArea-Element, von wo aus ich könnte den Inhalt kopieren.
var str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript
Ein bisschen klobig, aber es funktioniert für DOM-Objekte:
console.log( testNode.outerHTML.replace(testNode.innerHTML,"") );
Ich weiß, dass dies eine wirklich alte Frage ist, aber ich habe gerade nach einer Antwort darauf gesucht. Wenn die Verwendung der IE - Konsole nicht unbedingt erforderlich ist (was IMO nicht besonders gut ist), sollten Sie Firebug Lite ( http://getfirebug.com/firebuglite ) verwenden. Es ist keine perfekte Lösung, und Sie möchten das Skript möglicherweise nicht in Ihre Produktionsumgebung verschieben, und es ist nicht so umfassend wie Firebug, aber es ist ziemlich gut, wenn Sie mit einem einfachen Browser viel zu tun haben IE.