我使用下面的代码在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添加工具栏按钮?
答案 0 :(得分:2)
您必须使用CustomizableUI
module:
try
{
Components.utils.import("resource:///modules/CustomizableUI.jsm");
CustomizableUI.createWidget({
id: "toolbarbutton-toolbarbutton",
defaultArea: "nav-bar",
removable: true,
label: "My button",
tooltiptext: "My tooltip text",
onClick: function()
{
alert("Clicked");
}
});
}
catch (e)
{
Components.utils.reportError(e);
// No such module? Try the old approach.
...
}
请注意,不再需要为每个浏览器窗口添加窗口小部件,只需执行一次即可。不幸的是,模块文档现在几乎不存在,上面的代码是从module's source code推导出来的。不过,文档很快就会改进。
如果有帮助,Adblock Plus源代码包含emulation of the CustomizableUI API旧版Firefox。这个还远未完成,但它只是为了满足Adblock Plus的需求。