1

Моя всплывающая страница расширения получает данные из сообщения с песочной страницы & скриптов. Мне нужно сохранить это в chrome.storage, предпочтительно используя метод storage.sync. Я получаю эту ошибку: Uncaught TypeError: Не удается прочитать свойство «синхронизации» неопределеннойКак использовать расширение chrome.storage

Я уже добавил разрешения для хранения внутри моей manifest.json.

... "разрешение": [ "хранение"], ... chrome.storage.sync undefined?

Google alsostates что ни Backgroud сценария не требуется: https://developer.chrome.com/extensions/storage

Цитирование: сценарии содержания вашего расширения может напрямую доступ к пользовательским данным без необходимости создания справочной страницы.

Что я имею в виду? Заранее спасибо!

function receiveMessage(event) { 
     var data = event.data; 
     saveToStorage(data); 
    }; 

window.addEventListener("message", receiveMessage, false); 

function saveToStorage(data) 
{ 
    if (!data) { 
     console.log('Error: No value specified. Nothing saved to storage.'); 
     return; 
    } 

    chrome.storage.sync.set({'data': data}, function() { 
     console.log('Data saved to storage.'); 
    }); 
}; 
+1

Вы обновили расширение после добавления нового разрешения? –

+0

Ваш код верен, и вы сможете его использовать. Хотя с хранилищем 'sync', я бы рекомендовал проверить' chrome.runtime.lastError' из-за квот. – Xan

+0

Также проверьте, перезагрузили ли вы расширение ** и ** страницу, содержащую ваш скрипт содержимого. – Xan

ответ

0

Обязательно всегда загружайте расширение, прежде чем тестировать что-то новое. Я никогда не перезагружал его раньше, потому что это не было необходимо, ну до сих пор :) Также chrome.runtime.lastError очень кстати!

Смежные вопросы