我正在存储一个数组 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);
}
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
}
最佳答案
您的后台代码(此处未包含)实际上从未读取数据。
但是,它确实使用您显示的代码片段写入数据,该代码片段是由空数组初始化的。
所以每次再次打开扩展时,后台的数据都是空的,并且会覆盖保存的数据。要解决此问题,您必须首先从存储中执行后台 URLarray
初始化。
关于javascript - chrome.storage.sync.set 不保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448752/