2011-04-10 36 views
3

我跟着這個文檔Mozilla Developer Network: Creating toolbar buttons爲我的插件創建一個按鈕。它確實有效,但是當我第一次安裝插件時,圖標不會顯示在插件欄上。如何在第一次安裝時在插件欄上添加圖標?

我怎樣才能使圖標顯示在插件欄上的用戶安裝之後我的插件,然後保住自己的位置偏好?

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/css" href="chrome://.../content/firefox/browser.css"?> 

<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

    <script type="text/javascript" src="chrome://...../content/firefox/browser.js" /> 

    <toolbarpalette id="BrowserToolbarPalette"> 
    <toolbarbutton id=".....-button" class="toolbarbutton-1 chromeclass-toolbar-additional" 
     label="...." tooltiptext="Facebook Manager" 
     oncommand="System.......Toolbar.Show(event)" /> 
    </toolbarpalette> 

</overlay> 

如何將按鈕自動添加到插件欄一次?

我發現這個代碼以編程方式添加按鈕,就說明我的按鈕,但它與其他按鈕弄亂。

var myId = "myaddon-button"; 
var navBar = document.getElementById("addon-bar"); 
var curSet = navBar.currentSet.split(","); 

if (curSet.indexOf(myId) == -1) { 
    var set = curSet.slice(0, curSet.length).concat(myId).concat(curSet.slice(curSet.length)); 

    navBar.setAttribute("currentset", set.join(",")); 
    navBar.currentSet = set.join(","); 
    document.persist(navBar.id, "currentset"); 
    try { 
     BrowserToolboxCustomizeDone(true); 
    } 
    catch (e) {} 
} 
+0

請,你能不能告訴我們的一個片段是什麼你可以在你的''裏面找到更好的錯誤信息? – 2011-04-10 00:41:06

回答

0

看來,addon-bar壞了,但我可以添加它nav-bar看着Firebug的代碼。

if (firstrun) // from preferences 
{ 
    Services.prefs.setBoolPref("extensions.addon.FirstRun", false); 
    Services.prefs.setCharPref("extensions.addon.InstalledVersion", curVersion); 

    var startButtonId = "addon-button"; 
    var navBar = document.getElementById("nav-bar"); 
    var currentSet = navBar.getAttribute("currentset"); 
    if (!currentSet) 
     currentSet = navBar.currentSet; 

    var curSet = currentSet.split(","); 
    if (curSet.indexOf(startButtonId) == -1) 
    { 
     var set = curSet.concat(startButtonId); 
     navBar.setAttribute("currentset", set.join(",")); 
     navBar.currentSet = set.join(","); 
     document.persist(navBarId, "currentset"); 

     try 
     { 
      BrowserToolboxCustomizeDone(true); 
     } 
     catch (e) {} 
    } 
} 
0

這不是一個「安裝操作」來添加按鈕。您只需將該按鈕聲明爲疊加層的一部分,並在您的擴展疊加層應用時添加。

不管怎麼說,它看起來就像是增加了按鈕,工具欄調色板...所以它會在按鈕的大列表中顯示出來,當你在頂部工具欄上點擊右鍵,點擊「自定義...」

的插件欄是在底部,您可以添加到它,像這樣:

<toolbar id="addon-bar"> 
    <!-- your elements go here. toolbarbutton, etc --> 
</toolbar> 
+0

IIRC創建一個靜態按鈕,但我認爲你可以使用removable =「true」來允許用戶再次定製它。 – Neil 2011-04-12 20:49:28

1

addon-bar工作正常。

你只要把工具欄裏面的元素,並給它附加酒吧 例子的ID:

您的js放在這裏

<toolbar id="addon-bar"> 
     <menulist> 
      <your dropdown blah blah blah> 
     </menulist> 
    </toolbar 
</overlay>