1

我正在尝试在我的扩展中使用 ericvold 的工具栏按钮模块。当我使用 Add-on Builder 在线尝试时,它工作正常。但是当我在我的计算机上使用附加 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
    });
  }
};
4

2 回答 2

2

这是您可以查看的 github 存储库:

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

这是一个基本的附加组件,它具有指向 Erik Vold 的工具栏和实用程序库的 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 版本 1.7,由于 export.main() 的更改,它可能不适用于 SDK 主分支。

于 2012-05-20T20:33:34.403 回答
1

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

于 2012-05-21T01:54:36.300 回答