web-dev-qa-db-fra.com

localStorage ne fonctionne pas dans Edge?

Je travaille actuellement sur un certain JS. Cela fonctionne bien dans tous les navigateurs, à l'exception de Microsoft Edge. Le problème est assez simple: au début de l'un de mes scripts, je déclare une variable comme ceci:

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

Quoi qu'il en soit, quelque chose n'existe pas encore, mais l'idée est que cela peut être utilisé comme référence dans une fonction ultérieure. Firefox, Chrome, Opera et Safari n'ont pas de problème avec cela, mais Edge le fait, donc ma question est, est-ce une solution rapide? Ou vais-je devoir réécrire tout mon script à cause d'Edge?

C'est l'erreur que Edge lance en passant.

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

Merci!

16
Niels

Stockage local ne fonctionnait pas pour les fichiers locaux dans IE9 , donc j'imagine que c'est toujours le cas dans MS Edge.

Je viens de le tester dans Edge avec un serveur sur localhost et votre ligne de code fonctionnait très bien:

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

Il est possible qu'il s'agissait d'un problème de sécurité dans les versions antérieures de IE et qu'il n'ait jamais été mis à jour lors du développement du navigateur.

Cependant, il semble que localStorage et sessionStorage ne fonctionnent toujours pas dans Edge pour les fichiers HTML accessibles à l'aide du protocole 'file: //'.

18
nils

Pourriez-vous s'il vous plaît essayer

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

Pourriez-vous également vérifier si vous avez sélectionné "Activer le stockage DOM"? Vous pouvez le trouver sous: Options Internet -> onglet Avancé -> zone de groupe Sécurité

De plus, si vous exécutez votre page à partir d'un système de fichiers local, localStorage ne fonctionne pas sur IE, vous devez l'exécuter à partir du serveur Web.

Voici un lien qui fournit plus d'informations sur la façon de l'activer

4
Vlad Bezden