Сохранение объекта в расширении Chrome: невозможно прочитать свойство push of undefined

Я пытался сохранить объект в хранилище Chrome на основе этого ответа .

Обновить хранилище

      function updateLocalChromeStorage(key, obj) {
    var myObjArray = [];
    chrome.storage.local.get(key, function (result) {
        if (result) {
            myObjArray = result[key];
        }
        myObjArray.push(obj);
        chrome.storage.local.set({ key: myObjArray });
    });
}

Функция URL-адреса текущей вкладки

      function getCurrentTabUrl(callback) {
    chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
        var tab = tabs[0];
        var url = new URL(tab.url)
        var domain = url.hostname;
        callback(domain);
    });
}

Событие клика

      document.getElementById('save').addEventListener('click', function () {
    if (document.getElementById('block').checked) {
        getCurrentTabUrl(function (url) {
            updateLocalChromeStorage('myObjArray', url);
        });
    }
});

Это ошибка Error handling response: TypeError: Cannot read property 'push' of undefined.

Любая помощь очень ценится. Спасибо

2 ответа

Я нашел способ обойти эту проблему, переписав событие щелчка и включив updateLocalChromeStorage функция деятельности в событии.

      document.getElementById('save').addEventListener('click', function () {
    if (document.getElementById('block').checked) {
        getCurrentTabUrl(url => {
            chrome.storage.sync.get('blockedUrl', ({ blockedUrl = [] }) => {
                blockedUrl.push([url]);
                chrome.storage.sync.set({ blockedUrl });
            });
        })
    }
});

Попробуйте заключить «ключ» в квадратные скобки.

      function updateLocalChromeStorage(key, obj) {
    var myObjArray = [];
    chrome.storage.local.get([key], function (result) {
        if (result[key]) {
            myObjArray = result[key];
        }
        myObjArray.push(obj);
        chrome.storage.local.set({ [key]: myObjArray });
    });
}
Другие вопросы по тегам