Локальное хранилище html5 только возвращает значения на домашней странице, а не на других страницах - PullRequest
1 голос
/ 13 января 2011

Это мой первый раз, когда я работаю с localStorage, и я пытаюсь сохранить объект json, который я преобразую в строку.

На своей домашней странице я использую следующий код

localStorage.setItem("users",JSON.stringify(userList));

alert(localStorage.getItem("users"));

location.href="test2.html";

Это предупреждение выплевывает список пользователей без проблем.

Тогда на test2.html у меня есть

var userList=JSON.parse(localStorage.getItem("users"));
    alert(userList.toSource());

Firebug выдает ошибку 'userlist is null'.

Я пытался использовать строку 'test' вместо стригированного объекта json, но безуспешно. Я также попытался удалить JSON.parse и просто вернуть строку. Это тоже не сработало.

Что я делаю не так ??

1 Ответ

4 голосов
/ 13 января 2011

Современные браузеры решили, что локальные файлы (другими словами, «file: //») - это , а не - все они должны рассматриваться как члены общего «домена», по крайней мере, для некоторых целей. Chrome кажется самым строгим, но, возможно, в HTML5 функции Firefox также строги.

В некотором роде это имеет смысл: если кто-то изобретает какой-то инструмент, похожий на TiddlyWiki, который использует хранилище HTML5, вы не захотите, чтобы его материалы были доступны для какого-то другого случайного HTML-файла, который вы загружаете по совершенно не связанным с этим причинам.

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