Подтвердить что ты не робот

Является ли "localStorage" в Firefox только работающим, когда страница находится в сети?

Итак, я обожаю HTML 5 и localStorage, и я замечаю, что мои значения сохраняются только при запуске страницы в Firefox на локальном хосте (т.е. http://127.0.0.1:8000/test/index.html), но когда я запускаю файл локально (файл:///C:/test/index.html), мои значения не сохраняются. У Safari 4 нет проблем с обеими установками. Так кто знает, если это по дизайну → DOM Storage в Центре разработчиков Mozilla

(Firefox 2 разрешает доступ к хранилищу объекты выше в иерархии домена чем текущий документ. Это не дольше разрешено в Firefox 3, для причины безопасности. Кроме того, это предлагаемое дополнение к HTML 5 было удалены из спецификации HTML 5 в пользу localStorage, которая реализован в Firefox 3.5.)

Или, если есть обходной путь?
Интересно, потому что автономное хранилище, которое работает только в Интернете, звучит глупо: P

Если кто-то задается вопросом, код будет таким же простым, как и он:

function save()
{
 localStorage.setItem('foo','bar');
}

function load()
{
 var test = localStorage.getItem('foo');
 alert(test);
}
4b9b3361

Ответ 2

Ну, связанный документ действительно говорит, что

localStorage - это то же самое, что и globalStorage [location.hostname], за исключением , привязанного к исходному HTML5 (схема + имя хоста + нестандартный порт)

Я не хочу утверждать, что я понимаю 100%, что это значит, но бит в скобках предполагает, что URL должен иметь определенные свойства - в частности, что схема и имя хоста - это то, что Firefox считает источником HTML 5, Я подозреваю, что URL file:/// не соответствуют этому, а ваш http://127.0.0.1/ делает.

edit: Глядя на описание W3C свойства Origin, шаг 7 выглядит так, как будто это может вызвать проблему. В зависимости от того, как реализована обработка localStorage, она может ожидать 3-кортеж, возвращенный на шаге 12, но для URL file:// возвращаемое значение может быть примерно чем угодно.

Итак, э-э, я полагаю, что это по дизайну. По размышлению, скорее всего, это не дизайн; нет причин, по которым localStorage не должен работать для URL file://. Это может быть случай вывода одной конкретной версии браузера, не соответствующей ожиданиям другого.

Что касается обходных решений, globalStorage не будет делать то, что вы хотите здесь?