返回1个对象中的所有localStorage?

时间:2011-10-20 02:13:18

标签: javascript local-storage

如何返回包含所有localStorage键/值的对象?主要是尽可能提供面向未来的代码,而不是声明存储的已知密钥,我正在寻找一种方法来获取所有内容。

对于上下文:这将在Chrome扩展程序中用于同步首选项。

2 个答案:

答案 0 :(得分:3)

如果你想这样做,你可以简单地遍历每个项目,并附加当前项目,用空格分隔。

var allkeys = ""; ;
for (i=0;i < localStorage.length;i++) {
    var key = localStorage.key(i);
    allkeys += key + " " + localStorage.getItem(key) + " ";
}

我在每个键和值之间放置一个空格,以便您可以使用Tokenizer或类似的东西将空格拆分为分隔符。您可以在每个项目前面添加“Key”+ i和/或“value”+ i描述符,以帮助解析或查找项目,而无需循环访问键以找到匹配的项目。

答案 1 :(得分:0)

你为什么要那样做?此外,localStorage 一个对象,它包含浏览器存储的所有键:值对。如果你想复制它,你应该遍历它的属性。

它看起来像你想要/需要的是一个包装器,它将抽象掉localStorage insterface,所以如果你以后改变存储数据的方式,你只需要改变这个包装器没有你的代码注意到任何差异。我自己这样做。

有几个库可以通过不同的复杂性和/或功能来实现这一目标。例如,如果userData不可用,则jStorage允许您在IE中使用localStorage。我自己的Storage.js仅包装localStorage,但有方法可以同时处理多个项目。