我是JS和XUL的新手,所以如果这是一个noob查询,请耐心等待:-)
我正在开发firefox的扩展,当单击工具栏按钮(由我创建)时,它会执行自定义操作。我已经能够使用mozilla示例创建按钮,但我所看到的是,即使扩展安装成功(并且我重新启动firefox以完成更改),也需要手动将按钮添加到工具栏。在此之后,它可以根据需要使用,甚至在FF的后续启动时它仍然保留在工具栏中。
我想知道在成功安装扩展程序时是否有一种方法可以自动加载按钮。我的XUL脚本如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css"
href="chrome://custombutton/content/button.css"?>
<!DOCTYPE overlay >
<overlay id="custombutton-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript"
src="chrome://custombutton/content/button.js"/>
<!-- Firefox -->
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="custom-button-1"/>
</toolbarpalette>
<!-- button details -->
<toolbarbutton id="custom-button-1"
label="Custom"
tooltiptext="My custom toolbar button"
oncommand="CustomButton[1]()"
class="toolbarbutton-1 chromeclass-toolbar-additional custombutton"
/>
</overlay>
答案 0 :(得分:1)
您需要编写一些javascript代码才能实现这一目标:Adding button by default。请看Adding toolbar buttons to existing toolbars。
答案 1 :(得分:0)
使用insertItem函数:https://developer.mozilla.org/en/XUL/Method/insertItem您可以1.找到您的容器,例如导航栏。 2.找到要在之前或之后插入的目标项目。 3.插入你的按钮。坚持下去。
var nbar = document.getElementById("nav-bar");
var target = document.getElementById("urlbar-container");
var elem = nbar.firstChild;
while (elem) {
if (elem == target) {
break;
}
elem = elem.nextSibling;
}
nbar.insertItem("your-button-id", elem, null, false);
document.persist("nav-bar", "currentset");