我正在关注Mozilla Docs
的示例tabs.on('activate', function(tab) {
tab.attach({
contentScript: 'self.postMessage(document.body.innerHTML);',
onMessage: function (message) {
console.log(message);
}
});
});
稍作修改。
var bodyHTML;
tabs.on('activate', function(tab) {
tab.attach({
contentScript: 'self.postMessage(document.body.innerHTML);',
onMessage: function (message) {
bodyHTML = message;
console.log("From attach : " + bodyHTML);
}
});
});
console.log("After tab : " + bodyHTML);
现在,当我执行此插件时,console.log("After tab : " + bodyHTML);
首先执行,然后console.log("From attach : " + bodyHTML);
执行。可能是什么问题,我如何订购执行顺序?
答案 0 :(得分:4)
tabs.on()
来电设置了一个事件。它不直接导致任何其他事情发生。 onMessage
属性中的函数由内容脚本发布的消息触发,该消息本身由激活选项卡(通常是访问网页)触发。 console.log()
在tabs.on()
调用之后立即执行,很可能在附加任何标签之前执行。