webentwicklung-frage-antwort-db.com.de

Unterstützt IE8 ab Werk 'localStorage'?

Ich versuche, die HTML5-Funktion localStorage zu verwenden. Laut diesem Blog kann es mit IE8 gemacht werden, aber wenn ich versuche, es zu benutzen, bekomme ich einen Javascript-Fehler 'localStorage is null or not an object'

Meine Frage: Kann localStorage von IE8 sofort verwendet werden? Hier ist mein Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <title>IE8 - DOM Storage</title>
    <script type="text/javascript"> 
        function Save() {
            localStorage.setItem('key','value');            
        }        
    </script>
</head>
<body>        
    <button onclick="Save();">
        Save
    </button>  
</body>
</html>
50
Spiderman

Es unterstützt localStorage, obwohl Sie sich im IE8-Modus befinden müssen (dies funktioniert nicht im IE7-Modus).

Laden Sie die Entwicklerkonsole, um zu überprüfen, ob Sie im IE8-Modus arbeiten. Stellen Sie oben sicher, dass der IE8-Modus ausgewählt ist. Standardmodus wäre auch schön.

Eine Sache, die Sie auch sicherstellen möchten, ist, dass Sie den HTML5-Doctype verwenden. Sie sollten keinen XHTML-Doctype mit HTML5-Funktionen verwenden können.

<!DOCTYPE html>

Die Verwendung dieses Doctype sollte sich nicht auf die Unterstützung Ihres Browsers auswirken.

Stellen Sie außerdem sicher, dass Sie auf window.localStorage Zugreifen. Es sollte kein Problem sein, aber IE ist bekannt dafür, seltsame Probleme zu hosten. Vielleicht ist es auf der Suche nach einem lokal begrenzten localStorage -Objekt? Wer weiß.

56
mattbasta

der kommentar von musicfreak war richtig. Da für diese Funktion eine Domain erforderlich ist, musste ich sie nur über eine Live-URL (zumindest localhost) verwenden und nicht als Datei von einer Festplatte öffnen.

Es ist nicht erforderlich, window.localStorage Hinzuzufügen, da IE8 auch nur localStorage erkennt.

7
Spiderman

Eine gute Antwort aus der Vergangenheit:

Ich hatte das gleiche Problem - schlimmer noch! sogar IE10 ist fehlgeschlagen - und ich habe festgestellt, dass die Lösung (für mich) mehr mit meiner Entwicklungsumgebung zu tun hat als mit Internet Explorer. Was ich getan hatte, war, eine HTML-Datei zu erstellen und sie viel mit einem guten Texteditor zu bearbeiten. Ich könnte die Datei per Mausklick in einen Browser ziehen, um meinen Fortschritt bei der Entwicklung der Seite zu sehen, und später einfach das Browserfenster aktualisieren, wenn ich verschiedene Dinge in der Datei aktualisiert/bearbeitet habe.

Es stellte sich heraus, dass window.localStorage für Chrome und Firefox und Opera ein gültiges Objekt war, für Internet Explorer jedoch "undefiniert" (wie im Debugger zu sehen) hat ein Web-Server-Programm (für "localhost") gestartet und dieses verwendet, um die HTML-Seite an den Browser weiterzuleiten, und dann hat Internet Explorer ein gültiges Objekt ("DispHTMLStorage") für window.localStorage bereitgestellt. Erweitert für IE, gibt es ein Kontrollkästchen "DOM-Speicher aktivieren" - es scheint standardmäßig aktiviert zu sein, aber es ist immer möglich, dass einige Benutzer es manuell deaktiviert haben.

4

Versuchen Sie, "IE = Edge" anstelle von "IE = 8" in Ihrem x-ua-kompatiblen Meta-Tag zu verwenden
Von Microsoft: ( link )

Verwenden Sie den folgenden Wert, um die Webseite im EdgeHTML-Modus anzuzeigen, dem von Internet Explorer 6 bis IE11 unterstützten Modus mit den höchsten Standards.

<meta http-equiv="x-ua-compatible" content="IE=Edge" >
1
foxontherock