26

私は本質的に本のような一連のページであるhtmlアプリケーションを開発しています。このアプリケーション内で、いくつかのJavaScript変数をページ間で保存したいと思います。読んだページやブックマークなどを考えてみてください。このアプリケーションをHTTP経由で表示する場合、古いブラウザー(globalStorage、userDataなど)のフォールバックでlocalStorageを使用する予定です。

ただし、CDから表示する場合など、ファイルが「file://」を介してアクセスされる場合、これは完全に機能しなくなります。ほとんどの(すべてではないにしても)localStorageソリューションはファイルプロトコルでは機能しないようです。「file://」の下でもCookieはオプションではありません。

「file://」を介して表示されているときに、HTMLページ間でJavaScriptデータを永続化する方法に関するアイデアはありますか?

実際には、現在のユーザーセッションでのみ使用可能である必要があります。私は本当にフレームを使いたくないのですが、今のところ、これを達成するための別の方法を考えることはできません

4

2 に答える 2

9

私の仕事仲間は、window.name を使用して単一のウィンドウ/セッションのページ全体にデータを保存する実装を共有することで、この問題を解決してくれました。

同様の実装 (およびメソッドに関する議論) がここにあります: http://ajaxian.com/archives/whats-in-a-windowname

この方法で私が行ってきた予備テストは、非常に有望に見えます。以下のブラウザで、ファイル プロトコル (デスクトップからのページの読み込み、別名 - "file:\") の下でこれをテストしました。全部効きました!!

  • IE6
  • IE7
  • IE8
  • IE9
  • FF3.6
  • FF4
  • クロム 11
  • オペラ10
  • サファリ4

ここに保存できるデータ量についてはまだテストを行っていませんが、インターネットでは 2 MB の値で一致しているようです。

ソース、リンク、詳細情報

于 2011-05-06T18:29:02.963 に答える
3

Webkit (Chromium 12.0.742.21 dev-m) では、localStorage over file プロトコルがうまく機能しました。

Gecko では報告されており、すぐに改善されるはずです。

回避策を見つけることもできますが、Chrome ナイトリー ビルドを使用して開発することをお勧めします。したがって、将来的に localStorage に戻す時間を失うことはありません。

于 2011-05-06T16:37:05.250 に答える