我构建了一个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);
});
});
使用cfx run
进行调试时,这似乎适用于新标签页。然而,cfx run
上已打开的标签不会触发open
和ready
个事件。
原因是什么以及如何解决?
答案 0 :(得分: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);
}