对JS和扩展程序不熟悉这可能是一个新手的错误。
我正在使用同步存储API
var key = "chromeext_form_26" + tabid ;
chrome.storage.sync.set({ String(key), tab1Obj }, function() {
if (chrome.runtime.error) {
console.log("Runtime error.in setting");
}
});
但是这会引发错误,因为它无法将密钥识别为字符串。我确实尝试直接使用" chromeext_form_26" + tabid作为键将对象映射到"键"它自我。
输入chrome.storage.sync.get(null, function (data) { console.info(data) });
时
我可以看到映射为Object { key: "efg"}
。
答案 0 :(得分:2)
你想动态制作钥匙,不是吗?
在var key
之后添加对象密钥对定义:
var pair={}; pair[key]=tab1Obj;
chrome.storage.sync.set(pair, function(){
答案 1 :(得分:0)
由于Chrome扩展程序是特定于浏览器的,因此您可以使用ES6功能而无需担心兼容性。 ES6添加了计算属性名称,允许您直接在对象声明中计算属性名称,如下所示:
$scope.data2 = '{"func":"materialSons","material":"0"}';
console.log(Server.fetch($scope.data2, $rootScope.token));
$scope.materialist = Server.fetch($scope.data2, $rootScope.token);