如何返回包含所有localStorage键/值的对象?主要是尽可能提供面向未来的代码,而不是声明存储的已知密钥,我正在寻找一种方法来获取所有内容。
对于上下文:这将在Chrome扩展程序中用于同步首选项。
答案 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
,但有方法可以同时处理多个项目。