Как добавить значок на аддон-бар при первой установке? - PullRequest
3 голосов
/ 10 апреля 2011

Я следовал этому документу Сеть разработчиков Mozilla: Создание кнопок панели инструментов для создания кнопки для моего аддона.Это работает, но когда я устанавливаю аддон в первый раз, значок не отображается на панели аддона.

Как сделать так, чтобы значок появился на панели аддона сразу после того, как пользователь установил аддон, а затемсохранить настройки местоположения?

<?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) {}
}

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

аддон-бар работает нормально.

Вы просто должны поместить свои элементы в панель инструментов и дать ему идентификатор примера аддон-бара:

ваш js идет сюда

    <toolbar id="addon-bar">
        <menulist>
            <your dropdown blah blah blah>
        </menulist>
    </toolbar
</overlay>
0 голосов
/ 12 мая 2011

Кажется, что 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 голосов
/ 11 апреля 2011

Это не «установка действия», чтобы добавить вашу кнопку.Вы просто объявляете кнопку как часть наложения, и она добавляется при наложении расширения.

В любом случае, похоже, что вы добавляете кнопку в палитру панели инструментов ... так что она будет отображатьсяв большом списке кнопок, когда вы щелкнете правой кнопкой мыши на верхней панели инструментов и нажмете «Настроить ...»

Панель аддонов находится внизу, и вы можете добавить к ней вот так:

...