1

我无法制作需要跟踪用户总搜索量的 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);
    });
4

1 回答 1

0

每次刷新页面时都会运行内容脚本,并且在您的内容脚本中,您首先将预定义的对象保存在 chrome 存储中。即使在某些事件上发生更改,它也会在每次页面刷新时重置。

解决方案:您需要先检查 object( myKey) 是否保存在存储中,而不是添加新值。

请注意:您的扩展程序的内容脚本可以直接访问用户数据,而无需后台页面。在这里阅读更多。

于 2018-03-21T05:36:17.710 回答