2012-12-31 70 views
2

我正在创建一个简单的应用程序,用户将下载到他/她的计算机上,然后用浏览器打开硬盘。我需要它能够使用任何标准浏览器来存储数据。 (虽然数据不必在浏览器之间访问)。HTML5 localStorage离线网站

this link所述,如果使用HTML5的本地存储,则如果网站的url类似file:///C:/Web/mylocaltodo.html,则Internet Explorer将引发错误。它表示可以通过使用'localhost'来获得它,但是它提供的示例应用程序并不是如何完成的。

没有用户在本地主机上安装Web服务器,是否可以在本地保存离线站点的数据?并且可以在任何现代浏览器上运行,包括Internet Explorer?

感谢

+0

意味着应用程序在移动应用程序中的出现,还是您正在谈论一个fullworth桌面应用程序。如果它是两者中的第一个,我不明白为什么你需要创建与IE8的兼容性? –

+0

这将是一个独立的应用程序,它通常会运行在用户的台式电脑上,我不会支持它在手机上使用 – Jodes

回答

4

虽然问题仍然是旧的,我创建应该多个窗口之间同步应用程序时面临类似的问题。

因此,我只想与其他开发人员分享我的经验,这可能会避免长时间搜索问题。

事实上,由于same origin policy(为通过XMLHttpRequest访问本地文件),访问被拒绝读取localStorage,这样的变化不会得到窗口之间的同步。

简而言之:如果您使用file:///作为URL,它将无法同步localStorage。使用简单的网络服务器和http://localhost/作为URL,它会。

奇怪的行为,可悲的是,在JavaScript控制台中没有错误消息。在离线尝试一些localStorage实验时,请牢记这一点,并且不要疯狂地在您的代码中搜索问题;-)

+0

感谢您的支持。我试图使用[Storage Events](http://html5demos.com/storage-events)在两个单独的窗口之间同步数据,但它只是不能在我的桌面上使用某些测试文件。 – Jimbo