Rozszerzenie Chrome: przechowuj dane w tle

Chcę mieć możliwość przechowywania danych w tle (na moim rozszerzeniu), aby móc uzyskać dostęp do tych danych między wieloma domenami.

Gdzie robię:

content-script.js

function setItem(name, data) {
    chrome.extension.sendMessage({ command: 'setItem', name: name, data: data });
}

function getItem(name) {
    chrome.extension.sendMessage({ command: 'getItem', name: name }, function(response) {
        return response;
    });
}

background-script.js

Storage.prototype.setObject = function(key, value) {
    this.setItem(key, JSON.stringify(value));
}

Storage.prototype.getObject = function(key) {
    var value = this.getItem(key);
    return value && JSON.parse(value);
}

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
    switch (request.command) {
        case 'setItem':
            localStorage.setObject(request.name, request.data);
            return;
        case 'getItem':
            sendResponse(localStorage.getObject(request.name));
            return;
    }
});

Ale bez powodzenia, ponieważ nie mogę wrócić z wnętrza wywołania zwrotnegoZdobądź przedmiot.

Dostaję dane wewnątrzfunction(response) { } callback, po prostu nie mogę go zwrócić jako powrotuZdobądź przedmiot.

Jak mam to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion