26

我正在开发一个 html 应用程序,它本质上是一系列像书一样的页面。在这个应用程序中,我想跨页面存储几个 JavaScript 变量。想想诸如页面阅读、书签等之类的事情。当通过 HTTP 查看此应用程序时,我计划将 localStorage 与旧浏览器的后备一起使用(globalStorage、userData 等)。

但是,如果通过“file://”访问文件,例如从 CD 上查看文件,这将完全崩溃。似乎大多数(如果不是全部)localStorage 解决方案在文件协议下不起作用。Cookie 不是“file://”下的选项。

关于如何在通过“file://”查看 html 页面时将 JavaScript 数据持久化的任何想法?

它实际上只需要在当前用户会话中可用。我真的不想使用框架,但到目前为止,我想不出另一种方法来实现这一点

4

2 回答 2

9

我的一个工作伙伴通过分享他使用 window.name 跨单个窗口/会话的页面存储数据的实现来帮助我解决了这个问题。

可以在此处找到类似的实现(以及围绕该方法的讨论):http: //ajaxian.com/archives/whats-in-a-windowname

我对这种方法所做的初步测试看起来很有希望。我在以下浏览器上的文件协议(从桌面加载页面,又名“文件:\”)下对此进行了测试。它对所有人都有效!

  • 即 6
  • 即 7
  • 即 8
  • 即 9
  • 法郎 3.6
  • FF 4
  • 铬 11
  • 歌剧 10
  • 野生动物园 4

我还没有对您可以在此处存储多少数据进行任何测试,但互联网似乎同意 2 MB 的值。

来源、链接、更多信息

于 2011-05-06T18:29:02.963 回答
3

在 Webkit(Chromium 12.0.742.21 dev-m)上,文件协议上的 localStorage 对我来说效果很好。

据报道,在 Gecko 上,它应该很快得到改进。

您甚至可以找到解决方法,但我建议您使用 Chrome 每晚构建进行开发。因此,您将来不会浪费时间将其移回 localStorage。

于 2011-05-06T16:37:05.250 回答