Почему локальная хранилище не сохраняется в Chrome?

Я пытаюсь узнать, как использовать объект localStorage js со следующим кодом.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

Я знаю, что это не всегда работает с файлом:///, поэтому я использую mongoose для его обслуживания. Когда я нажимаю кнопку "Сохранить", результаты выглядят корректно для меня в консоли Chrome JavaScript. Однако, когда я нажимаю кнопку "Обновить", локальное хранилище и хранилище сеансов очищаются там, где я ожидал сохранения значения локального хранилища. Это происходит как на http://127.0.0.1/, так и на http://localhost/.

Кто-нибудь знает, почему это может произойти? В настройках, настройках контента я выбрал "Разрешить локальные данные быть установленными (рекомендуется)" и "без блокировки" блокировать сторонние файлы cookie и данные сайта ". Я что-то пропустил в своем коде?

(версия Chrome версии 23.0.1271.64 м)

Ответы

Ответ 1

Ok. Спасибо, должен пойти на pimvdb на этом, но вот решение.

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
localStorage.getItem('localKey');
sessionStorage.getItem('sessionKey');
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

Резюме похоже, что вы должны попытаться прочитать ключ, чтобы его сохранить.

Заключение: WTF.

Ответ 2

<!-- Necro post I know, but maybe it helps someone else -->

Я не мог понять, почему я не мог увидеть что-то в своем localStorage в Dev Tools, но мог видеть его в консоли при вводе localStorage. Ну, если вы храните что-то с Dev Tools open, вы не увидите Application -> Local Storage что-нибудь, что указано для вашего хоста. Когда я закрыл/снова открыл Dev Tools, я мог видеть мои данные.

Итак, в заключение, закройте/снова запустите Dev Tools.