chrome.storage.sync.set不保存数据

时间:2016-11-06 11:22:39

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

我正在使用URLarry中的chrome.storage.sync.set存储数组background.js,并从options.js访问它。一切都运行得很好。我可以毫无问题地使用URLarray中的options.js。 但是当我关闭chrome并重新打开它时,所有数据都会消失。请指教。

background.js

    save["myKey"] = URLarray;    
    chrome.storage.sync.set(save, function() {
        // console.log('Settings saved');
    });

URLarray填充如下:

URLarray.push({website: websiteName, time:0, startTime:0, endTime:0});

options.js

chrome.storage.sync.get('myKey', function (obj) {
        // console.log('myKey', obj);
        x = obj.myKey;
        console.log(x);
}

的manifest.json

{
  "name": "Animated Page Action",
  "description": "This extension adds an animated browser action to the toolbar.",
  "version": "1.2",
  "background": {
    "scripts": ["jquery-3.1.1.min.js","background.js"]
  },
  "page_action": {
    "default_title": "First icon",
    "default_icon": "icon_0.png"

  },

  "options_page": "options.html",
  "permissions": ["tabs","storage"],
  "manifest_version": 2
}

1 个答案:

答案 0 :(得分:1)

您的后台代码(此处未包含)从未实际读取数据。

然而,数据,使用您显示的片段,该片段由空数组初始化。

因此,每次再次打开扩展时,后台数据为空,并覆盖已保存的数据。要解决此问题,您必须先从存储中执行后台URLarray的初始化。