文件协议下的Javascript/HTML存储选项(文件://)
我正在开发一个html应用程序,它本质上是一系列像书一样的页面。在这个应用程序中,我想跨页面存储几个JavaScript变量。想想看,比如页面读取、书签等。当通过HTTP查看这个应用程序时,我计划使用localStorage和旧浏览器(globalStorage、userData等)的回退功能 但是,如果通过“file://”访问文件,例如从CD上查看文件,则此功能将完全失效。似乎大多数(如果不是全部的话)本地存储解决方案都不能在文件协议下工作。Cookie也不是“file://”下的选项 关于如何在通过“file://”查看html页面时跨html页面持久保存JavaScript数据的任何想法? 它实际上只需要在当前用户会话中可用。我真的不想使用框架,但到目前为止,我想不出另一种方法在Webkit(Chromium 12.0.742.21 dev-m)上实现这一点 在壁虎上,它是,应该很快得到改善文件协议下的Javascript/HTML存储选项(文件://),javascript,html,local-storage,file-uri,Javascript,Html,Local Storage,File Uri,我正在开发一个html应用程序,它本质上是一系列像书一样的页面。在这个应用程序中,我想跨页面存储几个JavaScript变量。想想看,比如页面读取、书签等。当通过HTTP查看这个应用程序时,我计划使用localStorage和旧浏览器(globalStorage、userData等)的回退功能 但是,如果通过“file://”访问文件,例如从CD上查看文件,则此功能将完全失效。似乎大多数(如果不是全部的话)本地存储解决方案都不能在文件协议下工作。Cookie也不是“file://”下的选项 关于
您甚至可以找到一个解决方法,但我建议您使用Chrome nightly build进行开发。因此,您以后将不会浪费时间将其移回本地存储。我的一位同事通过分享他使用window.name跨单个窗口/会话的页面存储数据的实现,帮助我解决了这个问题 类似的实现(以及关于方法的讨论)可以在这里找到: 我对这个方法做的初步测试看起来很有希望。我在以下浏览器上使用文件协议(从桌面加载页面,也称为“文件:\”)对此进行了测试。这对所有人都有效
- IE 6
- IE 7
- IE 8
- IE 9
- FF 3.6
- FF 4
- 铬11
- 歌剧10
- 狩猎4
storageSession
是否与localStorage
或globalStorage
不同?我以为Gecko故意把它从文件中漏掉了://
。我已经制作了一个演示(用于在你从一页移动到另一页时保持一个持久的sidenav以相同的方式滚动):测试了Chromev21、FFv14、IE8和IE9在http://
和文件://
上的使用效果非常好!我可能建议退回到会话存储
。如果将来的浏览器版本决定堵塞窗口.name
“漏洞”,这将为您提供一点额外的保险。