9

我正在寻找一种方法从localStorage中获取所有信息。我遇到的麻烦是我不知道数据会是什么,因为它是用户生成的。从LocalStorage中检索所有数据(不知道密钥名称)

所以这里发生了什么,用户输入一些文本,它使用JavaScript来操纵它,这取决于他们在输入表单上勾选了哪些复选框。这些框是用于符号的,例如,如果他们在@框中打勾,那么文本+ @At(符号然后是词)将被放置在本地存储器中,另一半作为布尔值(在这种情况下为1或0)代表是否被检查过。

确切的一对看起来是这样的:

someString .. @ At | 1
someString ..#Hash | 0

还应当指出的是,这是为了在Chrome扩展使用,从而在其他浏览器的兼容性是不是对我的要求(虽然它很可能是usful他人阅读此作为我在网上找不到任何其他内容)。

那么,如果无论如何我可以提取localStorage中的所有值,而无需真正知道每个键的名称? 是否有可能使用任何种类的通配符或正则表达式也许,我已经尝试过,但应使它使用for循环。

谢谢, WEZ

回答

18

window.localStorage.key是解决方案。 例如:

var i = 0, 
    oJson = {}, 
    sKey; 
for (; sKey = window.localStorage.key(i); i++) { 
    oJson[sKey] = window.localStorage.getItem(sKey); 
} 
console.log(oJson); 
+0

真棒,书签。 – collin 2013-01-30 15:08:11

+0

这将返回所有数值作为字符串。通过使用'var value = window.localStorage.getItem(sKey);保存'oJson'中的类型。 oJson [sKey] = value && JSON.parse(value); i ++;'在while()中'而是... – 2013-06-17 12:30:21