在 Firefoxaddonsdk 中使用第三方 API

Using Third party apis in firefoxaddonsdk

本文关键字:第三方 API Firefoxaddonsdk      更新时间:2023-09-26

我正在尝试在我的扩展中使用ericvold的工具栏按钮模块。当我使用附加组件构建器在线尝试时,它工作正常。但是当我在计算机上使用附加SDK执行此操作时,它似乎存在一些问题,并且似乎在任何地方都没有添加任何内容。

我遵循的步骤是:

  • 从 github 下载工具栏作为 zip 格式。

  • 解压缩它并将其添加到附加 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
    });
  }
};

下面是一个 github 存储库,您可以查看:

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

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

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 主分支一起使用。

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