当网页在线的情况下“的localStorage”在Firefox中唯一的工作?(Is “localS

2019-07-20 02:05发布

所以我玩弄与周围的HTML 5和localStorage的,我注意到,当我在本地主机(即运行在Firefox的页面我的价值观只能获得存储http://127.0.0.1:8000/test/index。 HTML ),但是当我运行该文件在本地(文件:/// C:/test/index.html)我的价值没有得到保存。 Safari 4中有两种设置没有问题。 因此,没有任何人知道,如果这是由设计- > DOM存储在Mozilla开发者中心

(火狐2允许访问存储对象在域层级比当前文档中。这是不再在Firefox 3允许的,出于安全原因,更高。此外,该提议除了HTML 5已经从有利于HTML 5规范除去的本地存储,这是在Firefox 3.5实现。)

或者,如果有解决方法?
我不知道,因为离线存储只在网上的作品听起来很愚蠢:P

如果有人想知道,代码是因为它得到简单:

function save()
{
 localStorage.setItem('foo','bar');
}

function load()
{
 var test = localStorage.getItem('foo');
 alert(test);
}

Answer 1:

这似乎是一个错误: 错误507361 - localStorage的不工作文件:///文件
希望很快就修好了!

2011-09-13:错误修正,在 'Mozilla8' 实现。 我用Firefox 8测试这和现在的工作。



Answer 2:

那么,链接文档中说

localStorage的是一样的globalStorage的[location.hostname],具有被限定为某个HTML5原点除外(方案+主机名+非标准端口)

我不想要求我明白100%是什么意思,但在括号中的位将表明URL需要有一定的性能 - 尤其是方案和主机名是什么火狐认为的HTML 5的起源。 我怀疑file:///的URL不匹配这一点,而你http://127.0.0.1/一样。

编辑 :看看W3C的起源属性的描述 ,第7步看起来像它可能会造成问题。 根据如何localStorage处理得以实施,可以期待一个3元组由步骤12返回的,但对于一个file:// URL中的返回值可以是任何东西。

所以,呃,我想这是由设计。 细想起来,有机会,这是不是真的由设计; 没有理由localStorage 不应该为工作file://网址。 它可能只是一个不匹配的另一预期特定浏览器实现的输出的情况。

至于解决方法,会globalStorage你想要的这里不能做?



文章来源: Is “localStorage” in Firefox only working when the page is online?