来自JSON对象的Chrome.storage.sync.set

时间:2018-03-10 10:08:12

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

我正在尝试保存到Chrome的同步存储,这是一个动态生成的JSON对象。

基本上,我正在运行查询以获取所有打开的标签:

function getTabs(){
  var activeSession = [];
  //Tab query with no parameters, returns all open tabs. 
  chrome.tabs.query({}, function(tabs){
    //For each tab push to active session array     
    tabs.forEach(function(tab){
      activeSession.push({'title': tab.title, 'url': tab.url});
    });
  });
  return activeSession;
}

然后,我从用户输入获取此组标签的名称,构建一个JSON对象并将其保存到Chrome的同步存储中:

//Retrieve group name from input field
    var group_name = document.getElementById('file_name').value;

    //Call function to retrieve tabs and build JSON object.
    var returned_tabs = getTabs(); 
    var obj = {[group_name]: returned_tabs};
    console.log(obj);

    chrome.storage.sync.set(obj, function() { 
        chrome.storage.sync.get(function (data) {
            console.log(data);
        });        
    });

obj变量本质上是我正在寻找的结构,并按预期工作,如console.log(obj)所示。这样的输出:

Desired Output

但是,当我尝试将其存储在Chrome中时 - 它只是将group_name保存为空数组。所以,如果我将这些信息从存储中取出并将其注销,我会得到:

Actual Output

0 个答案:

没有答案