从LocalStorage检索所有数据(不知道密钥名称)

时间:2012-02-04 22:03:52

标签: javascript google-chrome-extension local-storage key-value

我正在寻找一种从localStorage获取所有信息的方法。我遇到的麻烦是我不知道数据是什么,因为它是用户生成的。

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

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

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

还应该注意,这是用于Chrome扩展程序,因此对我来说不需要在其他浏览器中兼容(尽管对于阅读此内容的其他人来说这可能很有用,因为我找不到任何其他内容它在网上)。

那么,如果无论如何我可以在不知道每个密钥的名称的情况下提取localStorage中的所有值? 是否可以使用任何类型的通配符或正则表达式,我已经尝试过这个但是应该使用for循环。

谢谢, WEZ

1 个答案:

答案 0 :(得分:21)

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

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