我正在尝试在我的扩展程序中使用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
});
}
};
答案 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