localStorage.setItem не сохраняется при обновлении - PullRequest
10 голосов
/ 11 сентября 2011

Я пытаюсь сделать мега-простой setItem и getItem, используя локальное хранилище HTML5. Это, кажется, не работает, хотя. Это работает:

$(document).ready(function () {
  localStorage.setItem('keyA', 'valueA');
  var testA = localStorage.getItem('keyA');
  alert(testA);
});

Выводит окно с сообщением «valueA». Но когда я закомментирую строку 2 (которая задает значение элемента) и обновлю страницу, она просто выдаст предупреждение «ноль».

Почему значение не сохраняется? Как будто это вообще не хранится.

Браузер Firefox 6, так что никаких проблем нет. Может ли это быть связано с вызовом в jquery document.ready? Я гуглил, но ничего не видел об этом.

Если бы кто-нибудь мог преодолеть это первоначальное препятствие, я был бы очень благодарен, спасибо!

1 Ответ

12 голосов
/ 11 сентября 2011

Хорошо, после большого разочарования у меня есть решение.По сути, я запускал это локально только из файловой системы как «быстрое» подтверждение концепции.Он не работал ни в Firefox, ни в IE9, но он работал в Chrome.

Я закончил тем, что попытался сделать это на реальном домене, и это, похоже, помогло.

Итак, вывод, который я могу сделать, заключается в том, что localStorage в Firefox (как минимум 6.0.2) и IE9 не работает при запуске по пути файловой системы.Это в Chrome.Firefox и IE9 требуют для запуска «правильного» домена, предположительно потому, что они более строгие, чем Chrome, в том, как они связывают объект localStorate с «доменом» (в Chrome он не должен быть доменом как таковым).

Я надеюсь, что это помогло людям, потому что это чертовски расстроило меня!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...