2015-09-03 5 views
11

Ich arbeite gerade an einem JS. Es funktioniert in jedem Browser außer Microsoft Edge. Die Frage ist ganz einfach: am Anfang eines meines Skripte erkläre ich eine Variable wie so:localStorage funktioniert nicht in Edge?

var something = localStorage.getItem('something'); 

Wie auch immer die etwas noch nicht existiert, sondern die ganze Idee ist, dass dies für die verwendet werden kann, Referenz in einer späteren Funktion. Firefox, Chrome, Opera und Safari haben damit kein Problem, aber Edge macht das, also ist meine Frage, ist das eine schnelle Lösung? Oder muss ich mein ganzes Skript wegen Edge neu schreiben?

Dies ist der Fehler, der Rand übrigens wirft.

Unable to get property 'getItem' of undefined or null reference 

Vielen Dank!

+0

Versuch funktionieren. 'localStorage ['something']' –

+0

Wenn ich es im IE versuchte, wird kein Fehler ausgegeben. Können Sie mehr Code hinzufügen, den Sie schreiben? –

+0

https://msdn.microsoft.com/en-us/library/bg142799%28v=vs.85%29.aspx –

Antwort

12

Local Storage didn't work for local files in IE9, so stelle ich mir vor, dass dies immer noch der Fall in MS Edge ist.

Getestet habe ich es nur in Rande mit einem Server auf localhost und Ihre Codezeile funktionierte gut:

> var something = localStorage.getItem('something'); 
> undefined 

Es ist möglich, dass dies ein Sicherheitsproblem in früheren Versionen von IE und wurde nur nie aktualisiert wie der Browser entwickelt wurde.

Obwohl scheint es, dass localstorage und session noch nicht in Edge for HTML files accessed using the 'file://' protocol.

+3

Danke! Geh, um Microsoft zu lieben! – Niels

+1

Weiter zu diesem Thema diskutiert. Obwohl localStorage für mich funktionierte, auch in IE-Browsern auf localhost, für eine Single-Page-App. Als ich versuchte, die Eigenschaft auf mehreren Seiten festzulegen und darauf zuzugreifen, verhielt es sich unerwartet; es schien nur für die aktuelle URL zu aktualisieren (individuelle Seite). Am Ende entschied ich, dass ich im IE nur online testen müsste. – dading84

3

Könnten Sie bitte versuchen

var something = window.localStorage.getItem('something'); 

Könnten Sie auch überprüfen, ob Sie ausgewählt 'DOM Speicher enable' haben? Sie können es unter: Internetoptionen -> Registerkarte Erweitert -> Sicherheit Gruppenfeld

Auch wenn Sie Ihre Seite von lokalem Dateisystem ausgeführt werden, localstorage nicht auf IE funktioniert, müssen Sie es aus dem Web-Server laufen .

Here is a link that provides more information of how to enable it

+0

Immer noch der gleiche Fehler. – Niels

+0

Nein sagt immer dasselbe. – Niels

+0

vor haben Sie die Variable namens "etwas" in lokalen Speicher ?. mit 'localStorage.setItem' – Akhil

0

Vielleicht DOMStorage ausgeschaltet ist? Test mit diesem:

if (typeof window.Storage === 'undefined') { 
    alert('Storage turned off...'); 
}