Firefox插件SDK Tabs Access

时间:2013-03-25 21:13:17

标签: firefox-addon firefox-addon-sdk

我正在关注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);执行。可能是什么问题,我如何订购执行顺序?

1 个答案:

答案 0 :(得分:4)

tabs.on()来电设置了一个事件。它不直接导致任何其他事情发生。 onMessage属性中的函数由内容脚本发布的消息触发,该消息本身由激活选项卡(通常是访问网页)触发。 console.log()tabs.on()调用之后立即执行,很可能在附加任何标签之前执行。