【问题标题】:Retrieve all data from LocalStorage (without knowing the key name)从 LocalStorage 中检索所有数据(不知道密钥名称)
【发布时间】:2012-02-27 00:50:16
【问题描述】:

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

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

确切的一对应该是这样的:

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

等等

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

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

谢谢, 韦斯

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这会将所有数值作为字符串返回。在oJson 中保留类型:在while() 中使用var value = window.localStorage.getItem(sKey); oJson[sKey] = value && JSON.parse(value); i++;,而不是...
    猜你喜欢
    • 2013-07-18
    • 2017-06-09
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多