我正在尝试向我的扩展程序的后台页面发送一条消息,以从中获取数据chrome.storage
并将其返回到请求该数据的内容脚本。chrome.storage
由于 Firefox 的兼容性问题,我必须通过后台页面访问。
问题是我使用了 2 个异步函数chrome.storage
和chrome.runtime.sendMessage
,这意味着它undefined
总是被返回。
内容脚本:
chrome.runtime.sendMessage({
getStorage: ["sync", "prefs"]
}, function (data) {
var prefs = data.prefs;
//returns error since data is undefined
});
背景:
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.getStorage) {
var type = request.getStorage[0];
var name = request.getStorage[1];
if (type == "sync") {
chrome.storage.sync.get(name, function (data) {
sendResponse(data);
});
} else {
chrome.storage.local.get(name, function (data) {
sendResponse(data);
});
}
}
});