【问题标题】:Firefox-addon-sdk: launching pageMod when pressing a button?Firefox-addon-sdk:按下按钮时启动 pageMod?
【发布时间】:2013-06-07 15:27:01
【问题描述】:

我正在使用 Erik Vold 的 toolbar button 添加 Firefox,我想知道当用户按下工具栏中的按钮时如何启动和停止 pageMod。这甚至可能吗? 我尝试使用这种方法注入 Javascript,但效果不太好。此外,我无法注入 CSS。

以下是我当前的代码,如果这有助于理解问题:

var tbb = require('toolbarbutton').ToolbarButton({
  id: 'button',
  label: 'us-button',
  image: self.data.url('img/on.png'),
  onCommand: function () {

    tabs.activeTab.attach ({

        contentScriptFile: [
            self.data.url('jquery/jquery.min.js'),
            self.data.url('jquery/jquery-ui.js'),
            self.data.url('recuperation.js'),
            self.data.url('dialog.js')
      ]
   });
  }
});

【问题讨论】:

  • 不,没有错误。使用tabs.activeTab.attach,我们不能使用contentStyleFile,而使用pageMod 我们可以,所以我正在寻找一种在我按下工具栏中的按钮时调用pageMod 的方法。
  • 无法为特定标签调用PageMod。它的include 属性是强制性的,它在页面加载时用作页面过滤器,而不是在加载之后。请参阅下面的答案以注入 CSS。

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


【解决方案1】:

什么意思

效果不太好?

它真的有效吗?只要调用onCommand(),我就看不出代码有任何问题。

至于 CSS

您可能是提交 contentStyleFile 错误的人(击败了我),但作为参考,它已提交 here 并且他们似乎正在修复。

与此同时,我正在使用 javascript/jQuery。

Main.js

var worker = tabs.activeTab.attach({
    contentScriptFile: [data.url('jquery.js'),
                        data.url('annotate.js')]
    contentScriptOptions: data.url('annotate.css')
});

annotate.js

$('head').append("<link href='"+self.options+"' type='text/css' rel='stylesheet' />");

这也可以用纯 javascript 完成,但我也在其他地方使用 jQuery。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多