4

Я написал расширение Chrome. Я не могу использовать localStorage.setItem и localStorage.getItem для хранения и извлечения, поскольку действие фона и браузера выполняется в разных условиях [as seen here].Uncaught TypeError: Не удается прочитать свойство «local» неопределенного расширения chrome

Так что я решил использовать Chrome хранения API:

var storage = chrome.storage.local; 
var myTestVar = 'somevar'; 
var obj = {}; 
obj[myTestVar] = $("#somevar").val(); 
storage.set(obj); 

который произвел следующую ошибку:

Uncaught TypeError: Cannot read property 'local' of undefined

Что я делаю неправильно?

+1

Добавили ли вы '«хранение»' [разрешения] (http://developer.chrome.com/extensions/declare_permissions.html) в файл манифеста? –

+0

и он выполняет мою работу .... !!! Спасибо. Вы можете разместить его в качестве ответа. Я приму это –

ответ

8

Убедитесь, что все необходимые permissions были объявлены в файле манифеста. "storage", в вашем случае.

В общем, следующие шаги должны исправить проблему, очевидно, неопределенных Chrome API:

  1. Читайте документацию по API, который вы используете, и получить сами знакомы с предпосылками, как правило, проявляются разрешения (e.g. chrome.storage#manifest) ,
  2. Проверьте, поддерживает ли ваша (пользовательская) версия Chrome API, просмотрев What's new.
  3. Проверьте, работает ли скрипт справа context. Большинство API-интерфейсов доступны только для процесса расширения. (chrome.storage API также может быть использован в сценарии контента, хотя)
  4. В противном случае прибегает к обычным навыкам отладки: Опечаткам, переменному затенение, ...