1

我正在构建一个 SDK Firefox 插件,它应该读取标签的 URL 并解析它。为此,我正在听'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 回答