JavaScript localStorage-Objekt in IE11 unter Windows 7 beschädigt

DaslocalStorage Das Objekt in Internet Explorer 11 (Windows 7 Build) enthält Zeichenfolgendarstellungen bestimmter Funktionen anstelle der erwartungsgemäßen nativen Aufrufe.

Dies bricht nur mit Vanille-JavaScript und Websites wie JSFiddle haben kein Problem mit diesem Code, aber ich vermute, es liegt daran, dass es gibtlocalStorage Polyfills an der richtigen Stelle.

Nehmen Sie diesen HTML-Seitencode zum Beispiel:

<!DOCTYPE html>
<script>
  localStorage.setItem('test', '12345');
  alert(localStorage.getItem('test'));
  localStorage.clear();
</script>

Dies funktioniert mit Ausnahme von IE11 in allen meinen installierten Browsern einwandfrei. In der ersten Zeile ist ein Fehler aufgetreten. 'SCRIPT5002: Funktion erwartet'.

Werfen Sie einen Blick auf welche Art dersetItem Funktion ist eigentlich in der IE Developer Tools-Konsole, heißt es, es ist eine Zeichenfolge ...?

    typeof localStorage.setItem === 'string' // true

Die Zeichenfolge für ausdruckensetItem zeigt Folgendes an:

"function() {
var result;
callBeforeHooks(hookSite, this, arguments);
try {
result = func.apply(this, arguments);
} catch (e) {
callExceptHooks(hookSite, this, arguments, e);
throw e;
} finally {
callAfterHooks(hookSite, this, arguments, result);
}
return result;
}"

Seltsamerweise wurden nicht alle Funktionen durch Zeichenfolgen ersetzt, z. B. die entsprechendengetItem Funktion ist in der Tat eine Funktion und funktioniert wie erwartet.

    typeof localStorage.getItem === 'function' // true

Das Ändern des Dokumentmodus (Emulation) auf 10 oder 9 behebt das Problem weiterhin nicht und beide führen zu demselben Fehler. Wenn Sie den Dokumentmodus auf 8 ändern, wird der folgende Fehler ausgegeben:Objekt unterstützt diese Eigenschaft oder Methode nicht'was erwartet wird, da IE8 nicht unterstütztlocalStorage.

Hat jemand anderes das gleiche Problem mit IE11 unter Windows 7 wo dielocalStorage Objekt scheint 'kaputt / korrupt'?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage