如何为Firefox Australis添加工具栏按钮

如何为Firefox Australis添加工具栏按钮,firefox,firefox-addon,Firefox,Firefox Addon,我使用下面的代码在Firefox Australis下面的导航工具栏中自动添加工具栏按钮 var buttonId = "toolbarbutton-toolbarbutton"; var navBar = document.getElementById("nav-bar"); var currentSet = navBar.currentSet; var curSet = currentSet.split(","); if (curSet.indexOf(buttonId) == -1)

我使用下面的代码在Firefox Australis下面的导航工具栏中自动添加工具栏按钮

var buttonId =  "toolbarbutton-toolbarbutton";
var navBar = document.getElementById("nav-bar");
var currentSet = navBar.currentSet;

var curSet = currentSet.split(",");
if (curSet.indexOf(buttonId) == -1)
{
    navBar.insertItem(buttonId);
    navBar.setAttribute("currentset", navBar.currentSet);
    document.persist("nav-bar", "currentset");

    try
    {
        top.BrowserToolboxCustomizeDone(true);
    }
    catch (e)
    {

    }
}
由于Australis的用户界面和模块已更改,因此需要更新代码。如何以正确的方式为Australis添加工具栏按钮?

您必须使用:

试试看
{
Components.utils.import(“resource:///modules/CustomizableUI.jsm");
可定制的i.createWidget({
id:“工具栏按钮”,
默认区域:“导航栏”,
对,,
标签:“我的按钮”,
tooltiptext:“我的工具提示文本”,
onClick:function()
{
警报(“点击”);
}
});
}
捕获(e)
{
组件.utils.reportError(e);
//没有这样的模块?试试老办法。
...
}
请注意,不再需要为每个浏览器窗口添加小部件,只需添加一次即可。不幸的是,模块文档现在几乎不存在,上面的代码是从中推导出来的。不过,文档应该很快就会改进


如果有帮助的话,Adblock Plus源代码包含一个适用于旧版本Firefox的插件。这一个还远未完成,但它只是为了满足Adblock Plus的需要。

很好,但在通过
removeWidgetFromArea(id)
将其从导航工具栏中删除后,我无法添加按钮。如果可能的话,我可以切换按钮吗?@Xunshirine:您可以使用
addWidgetToArea(id、区域、位置)
方法(您必须自己记住位置)。