1

我正在尝试将动态生成的 JSON 对象保存到 Chrome 的同步存储中。

本质上,我正在运行查询以获取所有打开的选项卡:

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) 所示。像这样的输出:

期望的输出

但是,当我尝试将其存储在 Chrome 中时 - 它只是将其保存为带有空数组的 group_name。因此,如果我将此信息从存储中拉出并注销,我会得到:

实际输出

4

0 回答 0