Google Chrome扩展程序中每个标签的本地存储变量范围

时间:2011-07-05 08:08:49

标签: google-chrome-extension local-storage

我想在每个标签范围内存储变量。同样的问题已经提出,建议是使用localStorage。但是如何使用localstorage来保存关联数组。

例如。用户正在登录站点。我想创建一个变量来引用该用户。像这样使用将打开许多选项卡,他将登录许多网站。所以我需要在localstorage中维护域名和用户引用。因此,如果我使用用户名作为唯一字段,那么我可以维护与用户名的引用关联,最后我需要将这些信息存储在数据库中。

那么如何在Google Chrome扩展程序中维护数据结构。以上只是一个示例,但在任何情况下我们都需要在具有不同值的各个选项卡中使用相同的变量名称。

文档声明使用json格式。但我仍然想要用户建议。

因此任何类型的回复都会对他有所帮助,例如答案,建议,参考和评论。

1 个答案:

答案 0 :(得分:3)

从你的问题不是很清楚“标签范围”是什么意思。

如果您确实需要选项卡范围,即即使用户导航到新网站时也是此特定选项卡的存储值,那么您可以将tabid作为键(在浏览器重新启动之间,只有选项卡ID不是持久的)。

如果你的意思是“域范围” - 那么它就是“免费”的内容脚本。如果在内容脚本中使用localStorage,它将仅存储该域的值。您只需要确保您的密钥不会与潜在网站的密钥冲突,因为该网站可能使用相同的localStorage。

如果您只是询问如何创建一个将域名作为键的数据结构,那么它可能是这样的:

var data = {};
data["google.com"] = {
    username: "user1",
    password: "pass1"
};
data["yahoo.com"] = {
    username: "user2",
    password: "pass2"
};

//store it
localStorage["data"] = JSON.stringify(data);

//load
data = JSON.parse(localStorage["data"]);

//read google username
console.log(data["google.com"].username);