2010-08-02 14 views
25

Ich benutze localStorage in meiner JS-Anwendung und ich fragte mich, warum IE9 Ansprüche localStorage == undefined. Soweit ich weiß, IE8 unterstützt es, gibt es hier einen Weg, um es in der neuen Version zu arbeiten?localStorage Objekt ist nicht definiert in IE

+8

Sind Sie diese mit Datei 'Datei auf einem lokalen HTML-Datei zu testen: //' Protokoll? –

+0

Die Eingabe von 'localStorage' in der Dev Tools-Konsole der Platform Preview funktioniert für mich auf http-Sites –

+0

@Akexandre Jasmin oh du hast Recht, ich habe vergessen, dass es nicht funktioniert. Vielen Dank. –

Antwort

49

Testen Sie dies in einer lokalen HTML-Datei? d.h. eine file:/// URL?

localStorage ist nur auf HTTP-Websites verfügbar. Das hat sich in IE9 Dev Preview nicht geändert.

+0

@AJ. Vielen Dank. Ich hatte den Verdacht, dass das Problem war, aber ich fragte mich immer noch, was beim Testen im IE falsch war. Ich habe angefangen, meine Testseite aus einer Web-App heraus zu starten, und sie funktionierte problemlos in IE, FF und Chrome. – Stonetip

2

Versuchen Sie, die Datei zu öffnen, wie diese

Datei: //127.0.0.1/c$/pathtofile/file.html

+0

Ich glaube nicht, dass das funktioniert. In IE11 konnte es zumindest nicht funktionieren. Ah, naja, benutze mongoose Webserver, es ist klein genug und dann funktioniert localSorage. – raddevus

+2

@daylight Es funktioniert, wenn Sie auch "file: // 127.0.0.1" zur Liste der vertrauenswürdigen Sites hinzufügen. – grammar31

14

IE 11 WORKS

Alles, was Sie brauchen zwei Datei fügen: //127.0.0.1 in die vertrauenswürdigen Zonen unter der Registerkarte (HINWEIS: Stellen Sie sicher, dass das https-Kontrollkästchen nicht aktiviert ist) Fügen Sie diese Zeile am Anfang oder in Ihrem Skript hinzu, je nachdem, welchen Code Sie möglicherweise nicht benötigen nicht mit dem Internet verbinden.

!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p));

!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p)); 
 

 
if (typeof(Storage) != "undefined") { 
 
    // Store 
 
    localStorage.setItem("lastname", "Smith"); 
 
    // Retrieve 
 
    alert(localStorage.getItem("lastname")); 
 
} else { 
 
    alert("Sorry, your browser does not support Web Storage..."); 
 
}

+0

Großartig, das funktioniert! Auf meinem Computer, auch ohne etwas in den Sicherheits-Registerkarten usw. zu ändern. Eine Anmerkung: Dieser Code löst einen "Variable undefiniert im strikten Modus" -Fehler aus, wenn Sie Ihren Code im strikten Modus ausführen. Um zu lösen, schreibe im nicht-kondensierten Modus ('if (! LocalStorage) {....}') – Tyblitz

+0

man das funktioniert !, gute Möglichkeit, IE zu tricksen !! – Nikunj

Verwandte Themen