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

标签 javascript google-chrome google-chrome-extension

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

背景.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);
}

ma​​nifest.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
}

最佳答案

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

但是,它确实使用您显示的代码片段写入数据,该代码片段是由空数组初始化的。

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

关于javascript - chrome.storage.sync.set 不保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448752/

相关文章:

php - 获取流程响应

html - 添加 unicode 字符后文本更改高度

javascript - Webpack 编译的 Chrome 扩展抛出 `unsafe-eval` 错误

Javascript 数组浏览和比较

javascript - 在 JavaScript 中使用 == 的相等对象字符串

javascript - 无法创建 Bootstrap 交换机 (v2.0)

javascript - 删除所有 <tr> 如果文本中不包含 "test"

javascript - 在 Chrome 中检测被阻止的弹出窗口

css - 在 Linux 中,kokila 字体在 Google Chrome 中不起作用

javascript - Chrome 扩展程序权限