chrome.storage.sync не определено?
Я пытаюсь использовать Chrome Storage в расширении, используя content_script, но продолжаю терпеть неудачу на
Uncaught TypeError: Cannot read property 'sync' of undefined
Это мой код:
testChromeStorage();
function testChromeStorage() {
console.log("Saving");
chrome.storage.sync.set({'value': theValue}, function() {
message('Settings saved');
});
chrome.storage.sync.get("value", function (retVal) {
console.log("Got it? " + retVal.value);
});
}
5 ответов
Вы должны добавить разрешение "хранилище" в свой файл manifest.json, а именно:
...
"permissions": [
"storage"
],
...
Для получения дополнительной информации см.: https://developer.chrome.com/extensions/storage
Перезагрузите расширение
Мне добавили ключ "permissions" manifest
файл, но все же я изо всех сил пытался это исправить.
После добавления разрешения:-
"permissions": [
"storage"
]
Перейдите к вашему расширению, используя: chrome://extensions/ и нажмите кнопку "Перезагрузить":-
Если кто-то сталкивался с этой проблемой в Firefox, обратите внимание, что она еще не поддерживается:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage
Для моих целей было достаточно заменить chrome.storage.sync
от chrome.storage.local
,
Что касается состояния реализации Firefox, возможно, стоит время от времени заглядывать сюда:
ПЕРЕЗАГРУЗИТЕ СЕРВЕР DEV
Несмотря на добавление разрешения и перезагрузку расширения, синхронизация все еще не была определена.
Оказалось, что мне нужно перезапустить сервер разработки, чтобы поднять новый манифест. Это имеет смысл, поскольку этот файл не просматривался. Дох!
См. https://developer.chrome.com/extensions/content_scripts.html:
Однако у скриптов контента есть некоторые ограничения. Они не могут:
Используйте хром. API (за исключением частей chrome.extension) *
(выделение добавлено)