【发布时间】:2016-12-11 07:34:28
【问题描述】:
我正在使用 Chrome 版本的 localStorage (chrome.storage.sync),我想在设置要存储的数据时使用变量键和值。
我希望能够做这样的事情:
chrome.storage.sync.set({ user: id }, callback);
用户和 id 是动态生成的。
这个:
var user = "Bob";
var id = "81256309";
chrome.storage.sync.set({ user: id }, callback);
不起作用,因为它不会将 user 和 id 解释为它们的基础字符串值,因此会使用以下对象同步到 Chrome:{ user: id }。
I know how to do this with normal JavaScript objects 但该线程中的方法在这种情况下不起作用,因为我无法控制我的 Google 帐户的 storage.sync 对象。
【问题讨论】:
-
var obj = {}; obj [用户] = id; chrome.storage.sync.set(obj,callback)
-
@kzahel 感谢您的快速回复。我以后如何使用 chrome.storage.sync.get 检索它?
-
@kzahel 不幸的是,我不认为您的方法适用于多个键值对,因为如果我这样做
var obj = {}; obj[user] = id; chrome.storage.sync.set(obj,callback)然后var obj = {}; obj[user2] = id2; chrome.storage.sync.set(obj,callback)第一个 obj 被覆盖。 -
@kzahel 我想您可以将 obj 重命名为 obj + 一些随机生成的 id,但是当您以后想要获取数据时,就会出现引用问题
-
@kzahel 在同一个
obj中创建多个 KV 对并使用chrome.storage.sync.getitems.obj[user]访问它是另一种可能性,但这意味着每个 get 请求都会返回所有数据,这并不理想因为它会严重限制您可以存储的数据量
标签: javascript google-chrome object google-chrome-extension ecmascript-6