假设我有以下代码在Chrome扩展的后台页中。
在我的内容脚本中,我通过消息传递访问
有没有保证在内容脚本运行之前会定义opts?例如,在启动浏览器时,背景页面将运行,并且回调
我可以从内容脚本中调用chrome.storage.local.get,但我的问题更通用,因为我在我的背景页面中还有其他异步处理。目前,我的内容脚本与背景页面检查以确保一切准备就绪(使用间隔进行检查),但我不确定是否需要进行此类检查。
var opts;
chrome.storage.local.get(options, function(result) {
opts = result[options];
});
chrome.runtime.onMessage.addListener(function(request, sender, response) {
if (request.message === 'getOpts')
response(opts);
});
在我的内容脚本中,我通过消息传递访问
opts
。chrome.runtime.sendMessage({'message': 'getOpts'}, function(response) {
console.log(opts);
});
有没有保证在内容脚本运行之前会定义opts?例如,在启动浏览器时,背景页面将运行,并且回调
chrome.storage.local.get
将被添加到背景页面的消息队列中。Chrome是否会在注入内容脚本之前完成处理该队列?我可以从内容脚本中调用chrome.storage.local.get,但我的问题更通用,因为我在我的背景页面中还有其他异步处理。目前,我的内容脚本与背景页面检查以确保一切准备就绪(使用间隔进行检查),但我不确定是否需要进行此类检查。