0

私はMozillaDocsの例に従っています

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);ます。何が問題になる可能性があり、実行のシーケンスをどのように注文できますか?

4

1 に答える 1

4

呼び出しはtabs.on()イベントを設定します。他に直接発生することはありません。プロパティの関数はonMessage、コンテンツスクリプトによって投稿されたメッセージによってトリガーされます。メッセージ自体は、タブのアクティブ化(通常はWebページへのアクセス)によってトリガーされます。console.log()は、そのすぐ上の呼び出しの直後、ほとんどの場合、タブがアタッチされる前に実行されますtabs.on()

于 2013-03-26T03:41:47.190 に答える