IE 11 - Konsole.log ist die Anzeige undefiniert für Objekt-Eigenschaften
Dies ist ein ziemlich kurzes Beispiel. Ich kopieren und fügen Sie den folgenden code in eine Datei, speichern Sie es und öffnen Sie es. Funktioniert in Chrome, nicht, nicht im ie 11.
Die Ausgabe auf der Konsole ist Unsinn!
Was ist Los? Haben stolperte über einige seltsame Fehler?
test.b ist eindeutig nicht unbestimmt, es ist zugänglich durch den JSON-parser und-durch die direkte Objekt-Bewertung.
Außerdem schalten um die Reihenfolge der Variablen in der log-Funktion tut nichts, um zu testen.b wird nicht definiert.
<!DOCTYPE html>
<html>
<head>
<title>wtf</title>
<script>
var test = {a:1,b:{c:1}}
console.log(test,JSON.stringify(test),test.b);
</script>
</head>
<body>
WTF IE
</body>
</html>
- Ich bin nicht in der Lage zu reproduzieren, dies in IE11. Was ist die spezifische version Sie ausführen?
- 64-bit-windows-7 11.0.9600.17239 ich bin in der Lage zu reproduzieren von meiner Frau Ihrem Rechner.
- Hmm, das scheint eine etwas neuere version als die, die ich benutze (meine kleine version ist 17126) also, vielleicht ist es ein bug?
- Es begann erst ein oder zwei Stunden vor. Es war buchstäblich gut funktioniert, und ich dann aktualisiert die Seite, und dann funktioniert es nicht mehr.
- Vielleicht sehen wir die Auswirkungen von beschädigter Speicher? Versucht einen Neustart Ihrer Maschine?
- Ich habe. Wie ich schon sagte, obwohl, ich bin in der Lage zu reproduzieren, die auf einem anderen computer. Sehr unwahrscheinlich, dass es zu einem Speicherfehler.
- Ich habe versucht hier auf meinem IE 11. Seine "undefined"... habe versucht das gleiche auf Chrome und FF und ich fand es zu funktionieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen bug-report wurde von microsoft akzeptiert.
http://connect.microsoft.com/IE/feedbackdetail/view/958116/console-log-bug-on-11-0-9600-17239-displays-undefined-undefined-for-objects-and-arrays-which-are-properties-of-objects
Also die Antwort scheint zu sein, zu diesem Zeitpunkt, dass es ein bug ist.
Schreiben Sie Ihre eigene rekursive log-Funktion, da der browser nur die Protokolle auf der ersten Ebene.
Zu protokollieren standardmäßig Kosten würde zu viel performance und Speicher für den browser.
Siehe: rekursive Funktion log
Ich habe vor kurzem lief in dieses Problem, wie gut.
Das Problem war, dass die Seite, die ich bearbeitet hatte-Kompatibilität-Modus auf IE8.
Ich glaube, der IE8 hat keine Konsole, also Konsole.log wäre nicht definiert.