html5本地存储只返回主页上的值,其他页面不返回

Posted

技术标签:

【中文标题】html5本地存储只返回主页上的值,其他页面不返回【英文标题】:html5 local storage only returning values on home page, not other pages 【发布时间】:2011-06-08 17:50:55 【问题描述】:

这是我第一次使用 localStorage,我正在尝试存储一个我正在 stringify(ing) 的 json 对象。

在我的主页上,我使用以下代码

localStorage.setItem("用户",JSON.stringify(userList)); 警报(localStorage.getItem(“用户”)); location.href="test2.html";

此警报吐出用户列表没有问题。

然后在test2.html上,我有

var userList=JSON.parse(localStorage.getItem("users")); 警报(userList.toSource());

Firebug 吐出“用户列表为空”错误。

我尝试使用字符串 'test' 代替 json 对象,但没有成功。我也尝试删除 JSON.parse 并返回字符串。这也没有奏效。

我做错了什么??

【问题讨论】:

首页和其他页面的域名是一样的吗? “http”与“https”怎么样? 是的,它都在本地 c:\ 下运行,并且在同一个文件夹中,如果这很重要的话。但我会尝试从 localhost 运行它,看看是否会有所不同。 嗯...我知道 Chrome 对本地 HTML 文件是否都在同一个“域”中非常挑剔。也许 Firefox 也很挑剔。你能把页面放在某个服务器上的某个地方,看看是否有什么不同吗? 是的,就是这么点,谢谢...如果您将此作为答案发布,我会接受并给您积分。 好的,完成!谢谢。这是一个奇怪的问题,但我认为一旦 HTML5 存储真正被更多实际应用程序所利用,我们都会意识到对安全性的需求。 【参考方案1】:

现代浏览器已经决定,本地文件(换句话说,“file://”URL)并非都被视为公共“域”的成员,至少在某些方面是这样。 Chrome 似乎是最严格的,但也许在 HTML5 功能上,Firefox 也同样严格。

这有点道理:如果有人发明了某种使用 HTML5 存储的类似 TiddlyWiki 的工具,你不会因为完全不相关的原因而希望它的内容可用于随机下载的其他 HTML 文件。

【讨论】:

以上是关于html5本地存储只返回主页上的值,其他页面不返回的主要内容,如果未能解决你的问题,请参考以下文章

如果没有值,HTML5 本地存储对象会返回啥? [关闭]

Lumen 主页在 AWS 上正常工作,但其他页面不可用

Html5页面返回机制解决方案

HTML 浏览器地址改变,页面不刷新

ppt中箭头链接和返回主页怎么弄

使用 selenium 从 html 5 本地存储中读取