我在制作需要跟踪用户总搜索量的 chrome 扩展程序时遇到问题。我的代码在内容脚本中创建一个对象,然后添加到该对象并将其存储在 chrome 存储中,但是每次内容脚本再次运行时,我都非常确定我的对象被重置为空对象。我的一个想法是在后台脚本中创建对象并将其放入存储中,然后在内容脚本中添加对象,但我遇到了内容脚本中未定义对象的问题,并返回到我最初拥有的对象。
以下是重要的我的内容脚本:
var dataObject = {
"searches": [],
"links": [],
"time": []
};
var key = 'myKey';
chrome.storage.sync.set({
key: dataObject
}, function() {
console.log('Value is set to:');
console.log(dataObject);
});
chrome.storage.sync.get(['key'], function(result) {
console.log("Value is:");
console.log(result.key);
});
每次刷新页面时都会运行内容脚本,在内容脚本中,您首先将预定义的对象保存在 Chrome 存储中。即使在某些事件上更改了页面,它也会在每次页面刷新时重置。
溶液:您需要首先检查对象(myKey
(是否保存在存储中,而不是应该向其添加新值。
请注意:扩展的内容脚本可以直接访问用户数据,而无需后台页。在此处阅读更多内容。