在chrome.storage.sync中使用key

时间:2016-04-09 09:40:35

标签: google-chrome-extension google-chrome-storage

对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"}

2 个答案:

答案 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);