在firefoxaddonsdk中使用第三方api

时间:2012-05-20 06:49:34

标签: javascript firefox firefox-addon-sdk

我正在尝试在我的扩展程序中使用ericvold的工具栏按钮模块。当我使用Add-on Builder在线尝试时,它可以正常工作。但是,当我在我的计算机上使用Add-on SDK时,它似乎有一些问题,似乎没有任何地方添加任何内容。

我遵循的步骤是:

  • github下载工具栏作为拉链。

  • 解压缩并将其添加到附加组件SDK中的软件包并运行cfx docs

  • index.html(第三方api)中列出的文档复制到main.js

  • packages.json中添加依赖项(vold utils也已下载并添加)。

它仍然没有显示工具栏。

我的代码是:

exports.main = function(options) {
  // create toolbarbutton
  var tbb = require("toolbarbutton").ToolbarButton({
    id: "TBB-TEST",
    label: "TBB TEST",
    onCommand: function () {
      tbb.destroy();
    }
  });

  if (options.loadReason == "install") {
    tbb.moveTo({
      toolbarID: "nav-bar",
      forceMove: false // only move from palette
    });
  }
};

2 个答案:

答案 0 :(得分:2)

这是你可以看到的github回购:

https://github.com/canuckistani/toolbar-template

这是一个基本的附加组件,它有git子模块指向Erik Vold的toobar和utils库,并实现了一个非常简单的工具栏按钮。

const data = require("self").data;
const tabs = require("tabs");

exports.main = function(options) {

    var btn = require("toolbarbutton").ToolbarButton({
        id: 'my-toolbar-button',
        label: 'Add skull!',
        image: data.url('favicon.png'),
        onCommand: function() {
            if (typeof(tabs.activeTab._worker) == 'undefined') {
                let worker = tabs.activeTab.attach({
                    contentScript: 'self.port.on("sayhello", function() { alert("Hello world!"); })'
                });
                tabs.activeTab._worker = worker;
            }
            tabs.activeTab._worker.port.emit("sayhello");
        }
    });

    if (options.loadReason === "install") {
        btn.moveTo({
          toolbarID: "nav-bar",
          forceMove: false // only move from palette
        });
  }
};

要了解它是如何工作的,只需安装xpi文件:

https://github.com/canuckistani/toolbar-template/raw/master/toolbar.xpi

注意:此示例适用于SDK verison 1.7,由于exports.main()的更改,它可能无法与SDK主分支一起工作。

答案 1 :(得分:1)

D:\addon-sdk-1.6.1\packages\erikvold-toolbarbutton-jplib-46e51ab\lib\toolbarbutton.js更改为D:\addon-sdk-1.6.1\packages\toolbarbutton\lib\toolbarbutton.js