初始选项卡不会触发打开的、就绪的事件
Initial tab doesn't fire open, ready events
我正在构建一个 SDK Firefox 附加组件,它应该读取选项卡的 URL 并解析它。为此,我正在 lib/main.js
、
中收听 'ready'
事件
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
事件。
这是什么原因以及如何解决?
要列出在加载插件时打开的所有选项卡,您可以使用需要 sdk/tabs
后获得的 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);
}
我正在构建一个 SDK Firefox 附加组件,它应该读取选项卡的 URL 并解析它。为此,我正在 lib/main.js
、
'ready'
事件
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
事件。
这是什么原因以及如何解决?
要列出在加载插件时打开的所有选项卡,您可以使用需要 sdk/tabs
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);
}