【发布时间】:2015-02-19 10:55:05
【问题描述】:
我的扩展弹出页面从沙盒页面和脚本的消息中获取数据。我需要将它存储在 chrome.storage 中,最好使用 storage.sync 方法。我收到此错误: 未捕获的类型错误:无法读取未定义的属性“同步”
我已经在 manifest.json 中添加了存储权限。
...“权限”:[“存储”],... chrome.storage.sync undefined?
Google 还声明不需要背景脚本: 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.');
});
};
【问题讨论】:
-
添加新权限后是否重新加载了扩展程序?
-
您的代码是正确的,您应该可以使用它。虽然使用
sync存储,但由于配额限制,我建议检查chrome.runtime.lastError。 -
另外,看看你是否重新加载了扩展和包含你的内容脚本的页面。
-
重新加载所有内容,现在可以使用了。有时就这么简单,而我就是这么愚蠢:)
-
我讨厌同样的问题,我确实重新加载了所有内容。
标签: javascript google-chrome-extension google-chrome-storage