it-swarm.com.de

Wie kann ich JavaScript-Variablen in IE8 sichern?

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. 

70
Pekka 웃

Hier ist eine Technik, die ich hilfreich gefunden habe:

  • Öffnen Sie die Developer Tool Bar (drücken Sie F12).
  • Gehen Sie zur Registerkarte "Skript"
  • Klicken Sie auf die Schaltfläche "Debugging starten"
  • Geben Sie als Nächstes "Debugger" in die Konsole ein und drücken Sie die Eingabetaste. Dies sollte einen Haltepunkt auslösen.
  • Gehen Sie zum Unterreiter "Watch"
  • Klicken Sie auf die Zeile "Zum Hinzufügen klicken ..." und geben Sie eine Variable ein, die Sie untersuchen möchten. Beachten Sie, dass die Variable global verfügbar sein muss.
  • An dieser Stelle sollten Sie in der Lage sein, Ihre Variable mit einer baumartigen Benutzeroberfläche zu untersuchen
  • Wenn Sie mit dem Debuggen fertig sind, klicken Sie auf die Schaltfläche Weiter (oder drücken Sie die Taste F5).
101
Xavi

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.

92
Andy

@ 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!

13
René

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")
5
Cees Timmerman

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.

3
winladen

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.

1
Sharad

Eine bildliche Version von Xavis ausgezeichneter Antwort:

 enter image description here

1

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
0
dsuess

Ein bisschen klobig, aber es funktioniert für DOM-Objekte:

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 
0
brannigan

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.

0
Carnix