localStorage.setItem不会持久刷新

Dan*_*Dan 10 javascript local-storage

我正在尝试使用HTML5本地存储来执行一个简单的setItem和getItem.它似乎没有工作.这有效:

$(document).ready(function () {
  localStorage.setItem('keyA', 'valueA');
  var testA = localStorage.getItem('keyA');
  alert(testA);
});
Run Code Online (Sandbox Code Playgroud)

它输出一个警告框,上面写着'valueA'.但是当我注释掉第2行(设置项目值)并刷新页面时,它只是警告"空".

为什么价值不持久?就像它实际上根本没有存储一样.

浏览器是Firefox 6,所以没问题.可以在jquery document.ready中调用它吗?我用谷歌搜索但却看不到任何相关内容.

如果有人能让我超过这个最初的障碍,我将非常感激,谢谢!

Dan*_*Dan 13

好吧,经过很多挫折我有解决方案.基本上,我只是从文件系统本地运行它作为"快速"概念证明.它在Firefox和IE9中都不起作用,但它确实在Chrome中有效.

我最终做的是在一个真实的域上尝试这个,这似乎已经成功了.

因此,我可以得出的结论是Firefox中的localStorage(至少6.0.2)和IE9在文件系统路径上运行时不起作用.它在Chrome中.Firefox和IE9需要一个"适当的"域来运行,大概是因为它们将localStorate对象与"域"相关联的方式比Chrome更严格(在Chrome中它不需要像域一样).

我希望这对人们有所帮助,因为它让我感到沮丧!:)

  • 这些可能是有意义的:[Firefox中的"localStorage"仅在页面在线时才起作用吗?](http://stackoverflow.com/questions/1492942/is-localstorage-in-firefox-only-working-when-the -page-is-online)和[Bug 507361 - localStorage在file:/// documents中不起作用](https://bugzilla.mozilla.org/show_bug.cgi?id=507361). (2认同)