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>
- Il pourrait avoir quelque chose à voir avec le fait que vous le faites à partir d'un fichier local et non d'un domaine, depuis
localStorage
s'appuie sur le nom de domaine. Essayez d'hébergement de la page web en ligne.
Vous devez vous connecter pour publier un commentaire.
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.
L'utilisation de ce type de document ne devrait pas influer sur votre navigateur prend en charge.
Aussi, assurez-vous que vous avez accès
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 localelocalStorage
objet? Qui sait.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 quelocalStorage
ainsi.undefined
pour les deuxwindow.localStorage
etlocalStorage
É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é.
Essayez d'utiliser "IE=edge" au lieu de "IE=8" dans votre x-ua-compatible balise meta
À Partir De Microsoft: (lien)
Local de stockage du concept de travail sur IE8+.
Tout ce que vous avez à faire est de mettre votre code source sur le serveur et de l'exécuter.