【问题标题】:Initial tab doesn't fire open, ready events初始选项卡不会触发打开的就绪事件
【发布时间】:2015-05-08 18:22:36
【问题描述】:

我正在构建一个 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);
  });
});

Mozilla's documentation 中所述。

使用cfx run 进行调试时,这似乎适用于新标签页。已在 cfx run 上打开的选项卡不会触发 openready 事件。

这是什么原因以及如何解决?

【问题讨论】:

  • 我想你做了一个 sdk 插件。 sdk 使用引导程序,但并未真正归类为引导程序插件:P
  • @Noitidart 你是对的,这是与 SDK 相关的。您有什么可以解决的建议吗?
  • 我不确定我是引导程序而不是 sdk :(

标签: javascript firefox-addon firefox-addon-sdk firefox-addon-restartless


【解决方案1】:

要列出在加载插件时打开的所有选项卡,您可以使用在需要 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多