1

タブの URL を読み取って解析することになっている SDK Firefox アドオンを作成しています。この目的のために、私は で'ready'イベントを聞いていますlib/main.js

var tabs = require('sdk/tabs');
tabs.on('open', function(tab){
  tab.on('ready', function(tab){
    console.log(tab.url);
  });
});

Mozilla のドキュメントに記載されているとおりです。

でデバッグする場合cfx run、これは新しいタブでうまく機能するようです。ですでに開いているタブは、およびイベントを発生さcfx runせません。openready

これの理由とそれを修正する方法は何ですか?

4

1 に答える 1

2

アドオンの読み込み時に開いていたすべてのタブを一覧表示するにtabsは、必要な後に取得したオブジェクトを使用できますsdk/tabs

var tabs = require('sdk/tabs');
for (var tab of tabs) {
  console.log(tab.url);
}

したがって、例のコードは次のように変換できます。

var tabs = require('sdk/tabs');

for (let tab of tabs) {
  processTab(tab);
}

tabs.on('open', function(tab){
  tab.on('ready', processTab);
});

function processTab(tab) {
  console.log(tab.url);
}
于 2015-05-10T15:43:04.907 に答える