Firefox XUL:自动加载工具栏按钮

时间:2010-09-22 02:58:43

标签: firefox firefox-addon xul

我是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>

2 个答案:

答案 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");