chrome.storage не работает
У меня есть приложение Google Chrome, и я попытался использовать chrome.storage.sync.get, и он говорит, "не могу прочитать синхронизацию свойств неопределенного". Может кто-нибудь сказать, пожалуйста, что происходит? Я попытался скопировать и вставить точную строку с сайта разработчика Chrome.
Код буквально:
$(".thing").click(function() {chrome.storage.sync.set(stuff)}
Насколько я могу судить, ошибка в том, что я пытаюсь использовать API хранилища Chrome в Google Chrome, а не в качестве приложения.
2 ответа
Оказывается, я пытался запустить это в Google Chrome (браузер), а не как приложение Chrome. Chrome не знает, что он должен анализировать код как приложение, и игнорирует строку о chrome.storage
, Что-то, чего стоит остерегаться, разработчики Chrome!
Пожалуйста, следуйте этим шагам, пока вы используете chrome.storage.sync
- Объявите разрешения хранения в вашем манифесте.
manifest.json
{
"manifest_version": 2,
"name": "Storage",
"description": "This extension shows a Google Image search result for the current page",
"version": "1.0",
"icons":{
"256":"img/icon.png"
},
"permissions": [
"storage"
],
"app": {
"launch": {
"local_path": "options.html"
}
},
"background": {
"scripts": ["js/app/background.js"]
}
}
Перезагрузите приложение в
chrome://extensions
так что ваш manifest.json обновляется в вашем браузере.Следуйте точному синтаксису
chrome.storage.sync
с его функцией обратного вызова.
Sample.js
$(".thing").click(function() {
chrome.storage.sync.set({"myKey": "testPrefs"},function(){
alert("object stored");
})
chrome.storage.sync.get("myKey",function(obj){
alert(obj.myKey);
})
});
Это будет работать для вас. Я проверил этот код в моем приложении Chrome.