50 votes

Ne IE8 out-of-the-box support pour les 'localStorage'

Je suis en train d'utiliser la fonctionnalité HTML5 localStorage. Selon ce blog , il peut être fait en utilisant IE8, cependant lorsque j'essaie de l'utiliser, je reçois une erreur javascript 'localStorage is null or not an object'

Donc ma question: peut - localStorage être utilisé par IE8 out-of-the-box? Voici mon 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>

56voto

mattbasta Points 7377

Il prend en charge localStorage, si vous avez besoin d'être dans IE8 en mode (cela ne fonctionne pas en mode IE7).

Pour vérifier que vous travaillez dans IE8 en mode de charge de la console développeur. En haut, assurez-vous que IE8 mode est sélectionné. Normes de la mode serait bien aussi.

Une chose que vous voulez également vous assurer que vous utilisez le doctype HTML5. Vous ne devriez pas être en mesure d'utiliser un doctype XHTML avec des fonctionnalités HTML5.

<!DOCTYPE html>

L'utilisation de ce type de document ne devrait pas influer sur votre navigateur prend en charge.

Aussi, assurez-vous que vous accédez window.localStorage. Il ne devrait pas être un problème, mais IE a été connu pour héberger des plus étranges questions. C'est peut-être la recherche d'un ayant une étendue locale localStorage objet? Qui sait.

7voto

Spiderman Points 1506

le commentaire de musicfreak était correcte. Parce que cette fonctionnalité nécessite de domaine, j'ai eu à utiliser uniquement par le biais d'une url (à moins localhost) et non par l'ouvrir comme un fichier à partir d'un disque.

Il n'est pas nécessaire d'ajouter window.localStorage que IE8 ne reconnaît que localStorage ainsi.

4voto

Étendre sur une précédente bonne Réponse:

J'ai eu ce même problème --pire! même IE10 a échoué!-- et j'ai découvert la solution (pour moi) avaient plus à voir avec mon environnement de développement de microsoft Internet Explorer. Ce que j'avais fait était de créer un fichier HTML, et le modifier un lot à l'aide d'un bon éditeur de texte. J'ai pu cliquer-glisser le fichier dans un navigateur pour voir mes progrès dans le développement de la page, et, plus tard, simplement rafraîchir la fenêtre du navigateur, lorsque j'ai mis à jour/modifiés de diverses choses dans le fichier.

Il s'avère que pour Chrome et Firefox et Opera, fenêtre.localStorage est un objet valide, mais pour Internet Explorer, il est "undefined" (comme on le voit dans le débogueur). Cependant, une fois que j'ai allumé un programme de Serveur Web (pour "localhost"), et utilisé que pour nourrir la page HTML au navigateur, Internet Explorer fourni un objet valide ("DispHTMLStorage") pour la fenêtre.localStorage. Notez également que, dans Outils/Options/Avancé pour IE, il y a une case à cocher "activer les DOM storage" - il semble être cochée par défaut, mais il est toujours possible que certains utilisateurs auront manuellement désactivé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X