HTML5本地存储用于离线网站

3
我正在开发一个简单的应用程序,用户将下载到他/她的计算机上,然后通过硬盘驱动器在浏览器中打开。我需要它能够使用任何标准浏览器存储数据。(尽管数据不需要在浏览器之间可访问)。
正如这个链接所描述的那样,如果使用HTML5的localstorage,当网站的URL为file:///C:/Web/mylocaltodo.html时,Internet Explorer会抛出一个错误。它说可以通过使用“localhost”来解决,但它提供的示例应用程序没有展示如何实现。
是否可能在离线网站上本地保存数据,而不需要用户在localhost上安装web服务器?并且使其适用于任何现代浏览器,包括Internet Explorer?
谢谢

你是指移动应用程序还是完整的桌面应用程序?如果是前者,我不明白为什么需要与IE8兼容性。 - Index
它将是一个独立的应用程序,通常只在用户的桌面电脑上运行,我不会支持其在手机上使用。 - Jodes
1个回答

6
虽然这篇文章是旧的,但当我创建一个需要在多个窗口之间同步的应用程序时,我遇到了类似的问题。因此,我想与其他开发人员分享我的经验,以避免长时间寻找问题。
事实上,由于同源策略(对于通过XMLHttpRequest访问本地文件),读取localStorage被拒绝,因此更改不会在窗口之间进行同步。
简而言之:如果您使用file:///作为URL,则无法同步localStorage.使用一个简单的Web服务器和http://localhost/作为URL,就可以了。
奇怪的行为,可悲的是,在javascript控制台中没有错误消息。在离线尝试一些localStorage实验时,请记住这一点,不要在代码中疯狂搜索问题。

谢谢。我试图使用存储事件在两个独立的窗口之间同步数据,但是在我的桌面上使用一些测试文件时它就无法工作了。 - Jimbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接