LocalStorage не работает в Edge?
В настоящее время я работаю над некоторыми JS. Он отлично работает в каждом браузере, кроме Microsoft Edge.
Вопрос довольно прост:
в начале одного из моих скриптов я объявляю такую переменную:
var something = localStorage.getItem('something');
В любом случае чего-то еще не существует, но вся идея заключается в том, что это можно использовать для ссылки в более поздней функции. У Firefox, Chrome, Opera и Safari нет проблем с этим, но Edge делает, так что мой вопрос - это быстрое решение?
Или мне придется переписать весь мой script из-за Edge?
Это ошибка, которую ребро бросает кстати.
Unable to get property 'getItem' of undefined or null reference
Спасибо!
Ответы
Ответ 1
Локальное хранилище не работало для локальных файлов в IE9, поэтому я полагаю, что это все еще имеет место в MS Edge.
Я только что протестировал его в Edge с сервером на localhost
, и ваша строка кода работала нормально:
> var something = localStorage.getItem('something');
> undefined
Возможно, это была проблема безопасности в более ранних версиях IE, и она просто не обновлялась при разработке браузера.
Хотя, похоже, что localStorage и sessionStorage по-прежнему не работают в Edge для файлов HTML, к которым обращаются по протоколу 'file://'.
Ответ 2
Не могли бы вы попробовать
var something = window.localStorage.getItem('something');
Не могли бы вы также проверить, есть ли у вас "Включить хранилище DOM"? Вы можете найти его под:
Свойства обозревателя → вкладка "Дополнительно" → поле группы безопасности
Также, если вы используете свою страницу из локальной файловой системы, localStorage не работает в IE, вам нужно запустить ее с веб-сервера.
Вот ссылка, в которой содержится дополнительная информация о том, как ее включить
Ответ 3
Может быть, DOMStorage отключен? Протестируйте с помощью этого:
if (typeof window.Storage === 'undefined') {
alert('Storage turned off...');
}