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

Параметры хранения Javascript/HTML в файловом протоколе (файл://)

Я разрабатываю html-приложение, которое по существу представляет собой серию страниц, таких как книга. Внутри этого приложения я хотел бы сохранить несколько переменных JavaScript на разных страницах. Подумайте о таких вещах, как чтение страниц, закладки и т.д. Когда это приложение просматривается через HTTP, я планирую использовать localStorage с резервными копиями для старых браузеров (globalStorage, userData и т.д.).

Однако это полностью разрушается, если к файлам обращаются через "файл://", например, если он отображается с компакт-диска. Похоже, что большинство (если не все) решений localStorage не будут работать в файловом протоколе. Куки файлы не являются опцией ни под "file://".

Любые идеи о том, как переносить данные JavaScript через html-страницы при просмотре через "файл://"?

Он действительно должен быть доступен только в текущем сеансе пользователя. Я действительно не хочу использовать фреймы, но на данный момент я не могу придумать другой способ выполнить этот

4b9b3361

Ответ 1

Приятель моей работы помог мне справиться с этой проблемой, разделив его реализацию использования window.name для хранения данных по страницам одного окна/сеанса.

Аналогичную реализацию (и обсуждение вокруг метода) можно найти здесь: http://ajaxian.com/archives/whats-in-a-windowname

Предварительные тесты, которые я делал по этому методу, выглядят очень многообещающими. Я протестировал это в соответствии с файловым протоколом (загрузка страницы с рабочего стола, a.k.a. - "файл: \" ) в следующих браузерах. Он работал над всеми из них!

  • IE 6
  • IE 7
  • IE 8
  • IE 9
  • FF 3.6
  • FF 4
  • Chrome 11
  • Opera 10
  • Safari 4

Я еще не тестировал, сколько данных вы можете хранить здесь, но Интереты, похоже, соглашаются на значение 2 МБ.

Источники, ссылки, дополнительная информация

Ответ 2

В Webkit (Chromium 12.0.742.21 dev-m) localStorage по файловому протоколу отлично справился со мной.

В Gecko это сообщило и скоро должно быть улучшено.

Вы даже можете найти обходное решение, но я рекомендую вам разрабатывать с помощью ночной сборки Chrome. Таким образом, вы не потеряете время, возвращая его обратно в localStorage в будущем.