Параметры хранения Javascript / HTML в соответствии с протоколом файла (файл: //) - PullRequest
22 голосов
/ 06 мая 2011

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

Любые идеи о том, как сохранить данные JavaScript на HTML-страницах при их просмотре с помощью «file: //»?

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

Ответы [ 2 ]

8 голосов
/ 06 мая 2011

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

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

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

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

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

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

3 голосов
/ 06 мая 2011

В Webkit (Chromium 12.0.742.21 dev-m) localStorage поверх файлового протокола работал нормально для меня.

На Gecko сообщается , сообщается , и скоро должно быть улучшено.

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

...