>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как создать кнопку и элемент контекстного меню программно http://forum.mozilla-russia.org/viewtopic.php?id=52478 |
ds007007 > 18-11-2011 22:56:49 |
Здравствуйте. Мне нужно программно (т.е. при установке моей программы) создать кнопку на панели инструментов и пункт контекстного меню страницы (ссылки) в Mozila, которые будут открывать мою программу на локальном компьютере и передавать ей в качестве параметра ссылку. Подскажите, как это сделать? |
ds007007 > 18-11-2011 23:54:12 |
можно привести пример такого расширения? и как его установить? |
ds007007 > 28-06-2012 11:30:37 |
Добавить кнопку в Палитру кнопок получилось, но как сделать так, чтобы при установке расширения кнопка добавлялась сразу в панель навигации??? |
ds007007 > 28-06-2012 21:16:08 |
По форуму прошелся. Такой вопрос возникал неоднократно, но адекватного решения я не нашел. Допустим, код отсюда http://forum.mozilla-russia.org/viewtopic.php?id=54133 у меня не заработал. И все-таки, по возможности прошу привести рабочий код, а еще лучше - пример рабочего расширения, чтобы разрешить этот вопрос раз и навсегда. |
ds007007 > 06-07-2012 17:55:32 |
Вот JavaScript код добавления кнопки на стандартную панель инструментов: Выделить код Код:installButtonOnToolbar: function() { try { var btn = document.getElementById("my-button-id");//get our button, if it exists if (!btn) //if button not exists { var navBar = document.getElementById("nav-bar"); if (!navBar)//if nav-bar exists return; var currentSet = navBar.getAttribute("currentset"); if (!currentSet) currentSet = navBar.currentSet; var curSet = currentSet.split(","); if (curSet.indexOf("my-button-id") == -1) { var set = curSet.concat("my-button-id"); navBar.setAttribute("currentset", set.join(",")); document.persist("nav-bar", "currentset"); } navBar.insertItem("my-button-id"); } } catch(ex) { dump("Exception during installButtonOnToolbar: " + ex + "\n"); } }, Эту функцию нужно вызвать при первом запуске расширения. Чтобы отловить первый запуск, можно использовать какую-нибудь настройку логического типа наподобие extensions.myextension.firstrun. |