Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№335124-12-2011 19:10:18

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

questman пишет

Ребята такой вопрос.
Может ли повлиять на потребление памяти FireFox использование большого количества кнопок Custom Buttons?

Конечно может если кнопок оченъ много или кнопки криво написаны. Но мой опыт показывает что CB кнопки мало память жрут.

Отсутствует

 

№335224-12-2011 21:32:40

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Monti пишет

Управление изображениями(Firefox)
Можно ли переделать эту кнопку на два режима работы - загружать/не загружать изображения? И еще иконки подредактировать, если можно: если  выбрано загружать изображения - тогда это черный или серый лист. Если выбрано не загружать изображения - тогда это белый лист с квадратиком слева (он уже есть в данном коде). Дело в том, что голубой цвет привлекает внимание, а это не есть гуд.
Заранее спасибо)

скрытый текст
Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u043C%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/UlJS/1dXV/9dXV3/XV1d/11dXf9dXV3/XFxc/8zMzP/h4eH/39/f/9ra2v/V1dX/0dHR/83Nzf/Hx8f/a2tr/76+vv/o6Oj/6urq/+rq6v/V1dX/XV1d/1xcXP/Ozs7/ra2t/5WVlf+RkZH/kJCQ/42Njf+MjIz/zc3N/2xsbP+Ghob/oKCg/6enp/+5ubn/1dXV/11dXf9cXFz/zs7O/6+vr/+VlZX/kZGR/5WVlf+mpqb/tLS0/+Xl5f9vb2//hoaG/6CgoP+oqKj/urq6/9XV1f9dXV3/XFxc/8/Pz/+xsbH/n5+f/7W1tf/R0dH/1tbW/9PT0//u7u7/cHBw/4iIiP+ioqL/qamp/7u7u//V1dX/XV1d/1xcXP/Z2dn/2tra/93d3f/k5OT/4ODg/9vb2//Y2Nj/8PDw/3Fxcf+JiYn/paWl/6urq/+9vb3/1tbW/11dXf9cXFz/4+Pj//Ly8v/u7u7/6+vr/+fn5//j4+P/3t7e//Pz8/9xcXH/jo6O/6enp/+srKz/vb29/9XV1f9dXV3/XFxc/93d3f/39/f/+fn5//n5+f/4+Pj/9vb2//X19f/v7+//cXFx/5WVlf+urq7/r6+v/8DAwP/W1tb/XV1d/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP+ZmZn/srKy/7Kysv/CwsL/1tbW/11dXf8AAAAAAAAAAF1dXbavr6//2dnZ/7y8vP+7u7v/ubm5/7m5uf+3t7f/tbW1/7Ozs/+ysrL/wsLC/9jY2P9dXV3/AAAAAAAAAABdXV22sLCw/9ra2v++vr7/u7u7/7q6uv+6urr/ubm5/7e3t/+0tLT/srKy/8LCwv/W1tb/XV1d/wAAAAAAAAAAXV1dtrCwsP/a2tr/v7+//76+vv+8vLz/vLy8/7q6uv93d3f/XV1d/11dXf9dXV3/XV1d/11dXf8AAAAAAAAAAF1dXbawsLD/29vb/8HBwf+/v7//v7+//729vf+6urr/d3d3/6+vr//s7Oz/wsLC/11dXf9dXV3/AAAAAAAAAABdXV22sLCw/9vb2//CwsL/wsLC/8LCwv/AwMD/vb29/3h4eP+wsLD/sLCw/11dXf9dXV3bAAAAAAAAAAAAAAAAXV1dtrCwsP/v7+//7+/v/+/v7//v7+//7u7u/+7u7v+Ghob/XV1d/11dXf9dXV22AAAAAAAAAAAAAAAAAAAAAF1dXbZdXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV2SAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBwACsQcAArEHAAKxBwACsQcABrEHAA6xBwAesQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27permissions.default.image%27%3B%0Athis.setState%3Dfunction%28%29%7B%0Aswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0Acase%201%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/UlJS/1dXV/9dXV3/XV1d/11dXf9dXV3/XFxc/8zMzP/h4eH/39/f/9ra2v/V1dX/0dHR/83Nzf/Hx8f/a2tr/76+vv/o6Oj/6urq/+rq6v/V1dX/XV1d/1xcXP/Ozs7/ra2t/5WVlf+RkZH/kJCQ/42Njf+MjIz/zc3N/2xsbP+Ghob/oKCg/6enp/+5ubn/1dXV/11dXf9cXFz/zs7O/6+vr/+VlZX/kZGR/5WVlf+mpqb/tLS0/+Xl5f9vb2//hoaG/6CgoP+oqKj/urq6/9XV1f9dXV3/XFxc/8/Pz/+xsbH/n5+f/7W1tf/R0dH/1tbW/9PT0//u7u7/cHBw/4iIiP+ioqL/qamp/7u7u//V1dX/XV1d/1xcXP/Z2dn/2tra/93d3f/k5OT/4ODg/9vb2//Y2Nj/8PDw/3Fxcf+JiYn/paWl/6urq/+9vb3/1tbW/11dXf9cXFz/4+Pj//Ly8v/u7u7/6+vr/+fn5//j4+P/3t7e//Pz8/9xcXH/jo6O/6enp/+srKz/vb29/9XV1f9dXV3/XFxc/93d3f/39/f/+fn5//n5+f/4+Pj/9vb2//X19f/v7+//cXFx/5WVlf+urq7/r6+v/8DAwP/W1tb/XV1d/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP+ZmZn/srKy/7Kysv/CwsL/1tbW/11dXf8AAAAAAAAAAF1dXbavr6//2dnZ/7y8vP+7u7v/ubm5/7m5uf+3t7f/tbW1/7Ozs/+ysrL/wsLC/9jY2P9dXV3/AAAAAAAAAABdXV22sLCw/9ra2v++vr7/u7u7/7q6uv+6urr/ubm5/7e3t/+0tLT/srKy/8LCwv/W1tb/XV1d/wAAAAAAAAAAXV1dtrCwsP/a2tr/v7+//76+vv+8vLz/vLy8/7q6uv93d3f/XV1d/11dXf9dXV3/XV1d/11dXf8AAAAAAAAAAF1dXbawsLD/29vb/8HBwf+/v7//v7+//729vf+6urr/d3d3/6+vr//s7Oz/wsLC/11dXf9dXV3/AAAAAAAAAABdXV22sLCw/9vb2//CwsL/wsLC/8LCwv/AwMD/vb29/3h4eP+wsLD/sLCw/11dXf9dXV3bAAAAAAAAAAAAAAAAXV1dtrCwsP/v7+//7+/v/+/v7//v7+//7u7u/+7u7v+Ghob/XV1d/11dXf9dXV22AAAAAAAAAAAAAAAAAAAAAF1dXbZdXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV2SAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBwACsQcAArEHAAKxBwACsQcABrEHAA6xBwAesQQ%3D%3D%27%3B%0A%20%7D%3B%0ABrowserReload%28%29%3B%20%0Abreak%3B%0Acase%202%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%27%3B%0A%20%7D%3B%20%0Abreak%3B%0A%7D%0A%20%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%20%20%20%20case%201%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%20%20%20%20case%202%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано bunda1 (25-12-2011 00:12:36)

Отсутствует

 

№335324-12-2011 23:37:51

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 9.0

Re: Custom Buttons

bunda1
Можете написать код, для кнопки Toggle Find+ чтобы он выполнял только две функции, файндбар сверху и показ открытие по ctrl+f, просто остальное ненужно в том числе и поиск из буфера любыми способами. Пытался сам "обрезать" код, но так как не разбираюсь, то ничего не вышло:(

Отсутствует

 

№335425-12-2011 00:21:15

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Kamui пишет

bunda1
Можете написать код, для кнопки Toggle Find+ чтобы он выполнял только две функции, файндбар сверху и показ открытие по ctrl+f, просто остальное ненужно в том числе и поиск из буфера любыми способами. Пытался сам "обрезать" код, но так как не разбираюсь, то ничего не вышло:(

файндбар сверху, в инициализацию

Выделить код

Код:

//find bar сверху (move find bar to the top)................................................
XPCOMUtils.defineLazyGetter(window, "gFindBar", function() {
  let XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
  let findbar = document.createElementNS(XULNS, "findbar");
  findbar.setAttribute("browserid", "content");
  findbar.id = "FindToolbar";
  gBrowser.parentNode.insertBefore(findbar, gBrowser);

  // Force a style flush to ensure that our binding is attached.
  findbar.clientTop;
  window.gFindBarInitialized = true;
  return findbar;
});

показ открытие по ctrl+f, в инициализацию

Выделить код

Код:

//FindBar, сочетания клавиш(Key config).........................................................
(function () {
//Стоп, при открытии настройки панелей
if (window.FBRun == 'stop') return;
window.FBRun = String('stop');
//FindBar(ctrl+ F)показать - скрыть(Toggle Find Bar).........
window.addEventListener('keydown', function (event){
if (event.altKey == false)
{
if ((event.keyCode==0x46)&&(event.ctrlKey))
{
event.preventDefault();
event.stopPropagation();
gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();}}
}, false);
})();

Отсутствует

 

№335525-12-2011 12:30:52

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

Привет всем!!!
Сляпал вот такую кнопку с такой вот функцией.

myPT.gif

Я не на что не претендую,просто хочу этим сказать,что этот форум реально помогает пользователям FireFox.
Спасибо модераторам этого форума за то,что подтолкнули меня в нужном направлении.Теперь я умею писать несложные скрипты для кнопок.

Мне давно хотелось немного расширить визуальное пространство браузера,но банальное скрытие панелей что то не по мне.Хотелось бы скрывать и раскрывать
разные панели с использованием анимации.Благо новые версии FireFox позволяют это делать.

Кнопка по ЛКМ раскрывает и по СКМ  закрывает "Панель закладок"
Кнопка работает совместно с кодом прописанным в userChrome.css

Код для кнопки Custom Buttons:

//Кнопка показа Панели закладок
(function() {
var PT = document.getElementById("PersonalToolbar");
PT.setAttribute("style","top:87px");//Клик ЛКМ по кнопке и панель выезжает
this.onclick = function(event) {//Клик СКМ по странице и панель возвращает свой стиль в исходный
    if (event.button == 1) {
       PT.setAttribute("style", "");
    };
  };
})();

Код для userChrome.css

/* Панель закладок */
#PersonalToolbar:not([customizing]){
    padding: 5px 5px 2px 5px !important;
    position: fixed !important;
    top: -150px;
    left: 0;
    z-index: 1000 !important;
    width: auto !important;
    -moz-transition: all 0.3s ease-in-out 0.3s !important;
    background-image: -moz-linear-gradient(top,#CFDBEC, #BBC9DD) !important;
    -moz-border-radius:0 0 10px 0;
    border-bottom: 1px solid #868D98 !important;
    border-right: 1px solid #868D98 !important;
}

Просто зацените.

Отредактировано questman (25-12-2011 12:35:19)

Отсутствует

 

№335625-12-2011 14:45:13

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 9.0

Re: Custom Buttons

bunda1
Спасибо, а то в Toggle Find+ большинство функционала не нужно было, а поправить сам не мог:)

Отсутствует

 

№335725-12-2011 17:54:29

Z&N
Участник
 
Группа: Members
Зарегистрирован: 01-04-2008
Сообщений: 2401
UA: Nightly 12.0

Re: Custom Buttons

Просто зацените.

questman
  Выглядит эффектно :)

Отсутствует

 

№335825-12-2011 18:31:27

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Custom Buttons

Мне давно хотелось немного расширить визуальное пространство браузера,но банальное скрытие панелей что то не по мне.Хотелось бы скрывать и раскрывать

Удобнее сделать автоскрытие  с помощью стиля. ИМХО.  И панели у вас все дёргаются.

Отсутствует

 

№335925-12-2011 18:52:18

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

mserv пишет

Мне давно хотелось немного расширить визуальное пространство браузера,но банальное скрытие панелей что то не по мне.Хотелось бы скрывать и раскрывать

Удобнее сделать автоскрытие  с помощью стиля. ИМХО.  И панели у вас все дёргаются.

Да нет, не дёргаются.Это просто gif изображение такое.
С помощью стиля можно сделать конечно,но у меня эта кнопка работает совместно с другой.А другая открывает "кастомную" панель.
Поэтому в кнопки я добавил условные операторы,которые не дают панелям наезжать друг на друга,если открыть сразу обе.

Отсутствует

 

№336025-12-2011 19:12:35

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

questman
может так лучше: 
вкл/выкл по ЛКМ , в инициализацию

Выделить код

Код:

//настройка функций кликов мыши....
this.onclick = function(event) {
var PT = document.getElementById("PersonalToolbar");
    // Действие при клике ЛКМ
if(event.button == 0) {
    if (PT.getAttribute("style"))
    {
    PT.removeAttribute("style");
    }     
    else
    {
    PT.setAttribute("style","top:87px");
    }
}
  };

Отсутствует

 

№336126-12-2011 10:03:23

Monti
Участник
 
Группа: Members
Зарегистрирован: 26-09-2011
Сообщений: 5
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет
Monti пишет

Управление изображениями(Firefox)
Можно ли переделать эту кнопку на два режима работы - загружать/не загружать изображения? И еще иконки подредактировать, если можно: если  выбрано загружать изображения - тогда это черный или серый лист. Если выбрано не загружать изображения - тогда это белый лист с квадратиком слева (он уже есть в данном коде). Дело в том, что голубой цвет привлекает внимание, а это не есть гуд.
Заранее спасибо)

скрытый текст
Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u043C%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/UlJS/1dXV/9dXV3/XV1d/11dXf9dXV3/XFxc/8zMzP/h4eH/39/f/9ra2v/V1dX/0dHR/83Nzf/Hx8f/a2tr/76+vv/o6Oj/6urq/+rq6v/V1dX/XV1d/1xcXP/Ozs7/ra2t/5WVlf+RkZH/kJCQ/42Njf+MjIz/zc3N/2xsbP+Ghob/oKCg/6enp/+5ubn/1dXV/11dXf9cXFz/zs7O/6+vr/+VlZX/kZGR/5WVlf+mpqb/tLS0/+Xl5f9vb2//hoaG/6CgoP+oqKj/urq6/9XV1f9dXV3/XFxc/8/Pz/+xsbH/n5+f/7W1tf/R0dH/1tbW/9PT0//u7u7/cHBw/4iIiP+ioqL/qamp/7u7u//V1dX/XV1d/1xcXP/Z2dn/2tra/93d3f/k5OT/4ODg/9vb2//Y2Nj/8PDw/3Fxcf+JiYn/paWl/6urq/+9vb3/1tbW/11dXf9cXFz/4+Pj//Ly8v/u7u7/6+vr/+fn5//j4+P/3t7e//Pz8/9xcXH/jo6O/6enp/+srKz/vb29/9XV1f9dXV3/XFxc/93d3f/39/f/+fn5//n5+f/4+Pj/9vb2//X19f/v7+//cXFx/5WVlf+urq7/r6+v/8DAwP/W1tb/XV1d/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP+ZmZn/srKy/7Kysv/CwsL/1tbW/11dXf8AAAAAAAAAAF1dXbavr6//2dnZ/7y8vP+7u7v/ubm5/7m5uf+3t7f/tbW1/7Ozs/+ysrL/wsLC/9jY2P9dXV3/AAAAAAAAAABdXV22sLCw/9ra2v++vr7/u7u7/7q6uv+6urr/ubm5/7e3t/+0tLT/srKy/8LCwv/W1tb/XV1d/wAAAAAAAAAAXV1dtrCwsP/a2tr/v7+//76+vv+8vLz/vLy8/7q6uv93d3f/XV1d/11dXf9dXV3/XV1d/11dXf8AAAAAAAAAAF1dXbawsLD/29vb/8HBwf+/v7//v7+//729vf+6urr/d3d3/6+vr//s7Oz/wsLC/11dXf9dXV3/AAAAAAAAAABdXV22sLCw/9vb2//CwsL/wsLC/8LCwv/AwMD/vb29/3h4eP+wsLD/sLCw/11dXf9dXV3bAAAAAAAAAAAAAAAAXV1dtrCwsP/v7+//7+/v/+/v7//v7+//7u7u/+7u7v+Ghob/XV1d/11dXf9dXV22AAAAAAAAAAAAAAAAAAAAAF1dXbZdXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV2SAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBwACsQcAArEHAAKxBwACsQcABrEHAA6xBwAesQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27permissions.default.image%27%3B%0Athis.setState%3Dfunction%28%29%7B%0Aswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0Acase%201%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/UlJS/1dXV/9dXV3/XV1d/11dXf9dXV3/XFxc/8zMzP/h4eH/39/f/9ra2v/V1dX/0dHR/83Nzf/Hx8f/a2tr/76+vv/o6Oj/6urq/+rq6v/V1dX/XV1d/1xcXP/Ozs7/ra2t/5WVlf+RkZH/kJCQ/42Njf+MjIz/zc3N/2xsbP+Ghob/oKCg/6enp/+5ubn/1dXV/11dXf9cXFz/zs7O/6+vr/+VlZX/kZGR/5WVlf+mpqb/tLS0/+Xl5f9vb2//hoaG/6CgoP+oqKj/urq6/9XV1f9dXV3/XFxc/8/Pz/+xsbH/n5+f/7W1tf/R0dH/1tbW/9PT0//u7u7/cHBw/4iIiP+ioqL/qamp/7u7u//V1dX/XV1d/1xcXP/Z2dn/2tra/93d3f/k5OT/4ODg/9vb2//Y2Nj/8PDw/3Fxcf+JiYn/paWl/6urq/+9vb3/1tbW/11dXf9cXFz/4+Pj//Ly8v/u7u7/6+vr/+fn5//j4+P/3t7e//Pz8/9xcXH/jo6O/6enp/+srKz/vb29/9XV1f9dXV3/XFxc/93d3f/39/f/+fn5//n5+f/4+Pj/9vb2//X19f/v7+//cXFx/5WVlf+urq7/r6+v/8DAwP/W1tb/XV1d/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP9cXFz/XFxc/1xcXP+ZmZn/srKy/7Kysv/CwsL/1tbW/11dXf8AAAAAAAAAAF1dXbavr6//2dnZ/7y8vP+7u7v/ubm5/7m5uf+3t7f/tbW1/7Ozs/+ysrL/wsLC/9jY2P9dXV3/AAAAAAAAAABdXV22sLCw/9ra2v++vr7/u7u7/7q6uv+6urr/ubm5/7e3t/+0tLT/srKy/8LCwv/W1tb/XV1d/wAAAAAAAAAAXV1dtrCwsP/a2tr/v7+//76+vv+8vLz/vLy8/7q6uv93d3f/XV1d/11dXf9dXV3/XV1d/11dXf8AAAAAAAAAAF1dXbawsLD/29vb/8HBwf+/v7//v7+//729vf+6urr/d3d3/6+vr//s7Oz/wsLC/11dXf9dXV3/AAAAAAAAAABdXV22sLCw/9vb2//CwsL/wsLC/8LCwv/AwMD/vb29/3h4eP+wsLD/sLCw/11dXf9dXV3bAAAAAAAAAAAAAAAAXV1dtrCwsP/v7+//7+/v/+/v7//v7+//7u7u/+7u7v+Ghob/XV1d/11dXf9dXV22AAAAAAAAAAAAAAAAAAAAAF1dXbZdXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV3/XV1d/11dXf9dXV2SAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBwACsQcAArEHAAKxBwACsQcABrEHAA6xBwAesQQ%3D%3D%27%3B%0A%20%7D%3B%0ABrowserReload%28%29%3B%20%0Abreak%3B%0Acase%202%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%27%3B%0A%20%7D%3B%20%0Abreak%3B%0A%7D%0A%20%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%20%20%20%20case%201%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%20%20%20%20case%202%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Спасибо большое за кнопку, но есть нюанс: иконка с серым листом выключает загрузку изображений, а иконка с серым листом и квадратиком внизу - включает. Мне хотелось бы, чтоб было наоборот) И еще иконка с квадратиком на фоне должна быть цветной, привлекать внимание - чтобы информировать и том, что отключена загрузка изображений.

Отсутствует

 

№336226-12-2011 11:26:33

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

questman
может так лучше: 
вкл/выкл по ЛКМ , в инициализацию

Выделить код

Код:

//настройка функций кликов мыши....
this.onclick = function(event) {
var PT = document.getElementById("PersonalToolbar");
    // Действие при клике ЛКМ
if(event.button == 0) {
    if (PT.getAttribute("style"))
    {
    PT.removeAttribute("style");
    }     
    else
    {
    PT.setAttribute("style","top:87px");
    }
}
  };

Вы читаете мои мысли.Конечно так лучше и удобнее.Но это для меня был следующий этап научится вешать разные действия на одну кнопку мыши.
Теперь это произойдёт быстрее.СПАСИБО!!!

Отсутствует

 

№336326-12-2011 12:34:38

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Monti пишет

Спасибо большое за кнопку, но есть нюанс: иконка с серым листом выключает загрузку изображений, а иконка с серым листом и квадратиком внизу - включает. Мне хотелось бы, чтоб было наоборот) И еще иконка с квадратиком на фоне должна быть цветной, привлекать внимание - чтобы информировать и том, что отключена загрузка изображений.

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u043C%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27permissions.default.image%27%3B%0Athis.setState%3Dfunction%28%29%7B%0Aswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0Acase%201%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%27%3B%0A%20%7D%3B%0ABrowserReload%28%29%3B%20%0Abreak%3B%0Acase%202%3A%7Bthis.image%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg%3D%3D%27%3B%0A%20%7D%3B%20%0Abreak%3B%0A%7D%0A%20%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%20%20%20%20case%201%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%20%20%20%20case%202%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№336426-12-2011 14:47:33

Monti
Участник
 
Группа: Members
Зарегистрирован: 26-09-2011
Сообщений: 5
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет
Monti пишет

Спасибо большое за кнопку, но есть нюанс: иконка с серым листом выключает загрузку изображений, а иконка с серым листом и квадратиком внизу - включает. Мне хотелось бы, чтоб было наоборот) И еще иконка с квадратиком на фоне должна быть цветной, привлекать внимание - чтобы информировать и том, что отключена загрузка изображений.

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u043C%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27permissions.default.image%27%3B%0Athis.setState%3Dfunction%28%29%7B%0Aswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0Acase%201%3A%7Bthis.image%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0Au7u7AOrq6gDv7+8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVAAAAAAAAVVUDMzMzIiBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREgVVUDERERESBVVQMRERERIFVVAxEREREwVVUDERERETBVVQMRERAAAFVVAxEREDMAVVUDEREQMAVVVQMzMzAAVVVVAAAAAAVVXgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AEAAOABAADgAQAA4AMAAOAHAADgDwAA%27%3B%0A%20%7D%3B%0ABrowserReload%28%29%3B%20%0Abreak%3B%0Acase%202%3A%7Bthis.image%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg%3D%3D%27%3B%0A%20%7D%3B%20%0Abreak%3B%0A%7D%0A%20%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%20%20%20%20case%201%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%20%20%20%20case%202%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Спасибо ОГРОМНОЕ!

Отсутствует

 

№336527-12-2011 16:42:42

Ste_pan
Участник
 
Группа: Members
Откуда: приморский край п.сибирцево
Зарегистрирован: 13-02-2011
Сообщений: 63
UA: Firefox 7.0

Re: Custom Buttons

вот кнопка  мож кому пригодится при клике на правую выподает меню со спископ аддонов возле каждого кнопки ,включить ,удалить,открыть папку либо файл  аддона
в коде надо поменять путь
к program files на свой
local.initWithPath("e:\\pro\\WinRAR\\WinRAR.exe");
инилизация

скрытый текст
this.url2xul = 'chrome://mozapps/content/extensions/extensions.xul';
this.onClick = function (e) {
    switch (e.button) {
    case 0:
        try {
            BrowserOpenAddonsMgr();
        }
        catch(e) {
            BrowserOpenExtensions('extensions');
        }
        break;
    case 1:
        {
            if (e.ctrlKey) {
                var t = gBrowser.mTabs;
                var current = content.document.location.href;
                var i = t.length;
                if (current == this.url2xul) gBrowser.removeCurrentTab();
                else while (true) {
                    if (--i < 0) {
                        if (current == 'about:blank') // replace blank tab
                        loadURI(this.url2xul);
                        else // add new tab
                        gBrowser.selectedTab = gBrowser.addTab(this.url2xul);
                        break;
                    };
                    if (t[i].linkedBrowser.currentURI.spec == this.url2xul) // popup loaded
                    {
                        gBrowser.selectedTab = gBrowser.tabContainer.childNodes[i];
                        break;
                    };
                };
            } else openWebPanel(this.tooltipText, this.url2xul);
        };
        break;
    };
};
this.setAttribute('onclick', 'this.onClick(event);');

const Cb = custombuttons;

function prop(aElement, aString) {
    var emRDF = "http://www.mozilla.org/2004/em-rdf#";
    var arc = RDFService.GetResource(emRDF + aString);
    var target = extensionDS.GetTarget(aElement, arc, true);
    if (target instanceof Ci.nsIRDFLiteral) return target.Value;
    if (target instanceof Ci.nsIRDFInt) return target.Value;
    return null;
}

var cloneCBcontext = {
    cloneItems: function (aNode, aID, aSeparate) {
        var menupopup = document.getElementById(aID).cloneNode(true);
        var menuitems = menupopup.childNodes.length;
        for (var i = 0; i < menuitems; i++)
        aNode.appendChild(menupopup.firstChild);
        if (aSeparate) aNode.appendChild(document.createElement("menuseparator"));
    },
    makeMenu: function (aNode) {
        var m = aNode.appendChild(document.createElement("menu"));
        m.setAttribute("label", "Custom Button");
        m.setAttribute("oncommand", "event.stopPropagation()");
        var mp = m.appendChild(document.createElement("menupopup"));
        cloneCBcontext.cloneItems(mp, "custombuttons-contextpopup");
        aNode.insertBefore(document.createElement("menuseparator"), m);
    }
}

const popupID = "Context-extensionsButton";

var test = document.getElementById(popupID);
if (test) test.parentNode.removeChild(test);

var main = document.getElementById("mainPopupSet");
var cPopup = main.appendChild(document.createElement("menupopup"));

cPopup.id = popupID;
cPopup.setAttribute("oncommand", "event.stopPropagation(); document.popupNode.openPrefs(event);")
var test = document.getElementById("Context-extensionsButton");
var app = Cc ["@mozilla.org/fuel/application;1"]. getService (Ci. fuelIApplication);
var am = {};
Cu. import ("resource://gre/modules/AddonManager.jsm", am);
am. AddonManager. getAddonsByTypes
(
        ["extension"],
        function (extensions)
        {
       
         var osnov_box= document.createElement('arrowscrollbox')
         osnov_box.setAttribute("style","max-height: 400px ")
         osnov_box. appendChild (document.createElement('menuseparator'))
         var all_addons= document.createElement('caption')
         all_addons.setAttribute("label", "ALL  ADDONS"+" "+extensions. length)
        
          var separator= document.createElement('separator')
          separator.setAttribute("style", "height: 4px")
         osnov_box. appendChild (all_addons)
         osnov_box. appendChild (separator)
       
          
        var iconURL='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACV0lEQVR4Xi3OT2ibZQDH8c/7msT1pZqOtlQ32ulaGJVuB0UvMiyRCbZCT14MHUIzcaCCFcZAGOiKIB3UkyCeBBU86EGYiPZanTIZwnTWScdqbdM/U/vHN1mS5jGHHD637w9+TOM1vKrTtPe8419z7njflrmWt2yb9ocpE0p4CaW2KTjVdtKgkqsnloZCMYyHQjgeHguD4YndoeBDwagZpzCKsfbmNIzjZZxF0aiS+Qd/TUJvRRjYzQcf2DPhotP6TOBJTOE5FIlVPG/NZEvRpq6Wpcp/dR1RXlcmz5pUasWOUalJDQ+3AOC83aGb/SF7TfCdMHCzJ5zYHwjKghXhwC1NXwvmBbOCgheVMI4iGSOas0MXXfWTdWU/WnBjc5kKUqpZkUGibkIFC1IdetSdwZXInB3HJS7bUNR3aCQbr67VaeAuKthGNxbxhVcccNiw8275LbZgw+dm/OUFn/h5falODjVUUUeEHfQKjrhg0OueEunUH3nGfY7akwjWvWnSjEdxG3U0UEOKCAnu4l58605Gzq4EOWRsqLWDFI22/bY6AlJ0ATHOCR6XlcgogCruRx6dgDo6BGvYQQY1cazfu3p9atUlxxT0YxnXcQ2/o4I8yvjSx+ZdsYI9ucjbNj2rx3UMY9O+ryy67bKGX3R42hEnjXnIIr4xJvE3LuH7WCqSw1HUsOAfq96QdU63j+SdUTbrBhLUHJTzg7Ki4ELsHhlNVJHBiIMOOatTnwSRYYeVHEMT2n3WMqoZizZ8pmm/BWKxLQXbHlCxjkfUDGs98yeqUluoAf8DkrzrAnZsWyMAAAAASUVORK5CYII='       
                var e;
                var arr = [];
                var j = 0
                var arr1 = [];
                var j1 = 0
               
                for (var i = 0; i < extensions. length; i++)
                {
                        var end=0
                        e = extensions [i];
                       
                       if(e.appDisabled==true){
                       arr [j] = e;
                       j++
                       var end=1
                       }else{
                       if(e. userDisabled){
                       arr1 [j1] = e;
                       j1++
                       var end=1
                       }}
            if(end==0){
                        var addon_box = document.createElement('hbox')
                        var addon_groupbox= document.createElement('vbox')
                        var addon_separator= document.createElement('separator')
                       
                        addon_groupbox.setAttribute("style", "border: 1px solid gainsboro;border-radius: 4px")
                        var button_box = document.createElement('hbox')
                          osnov_box. appendChild (addon_groupbox)
                          addon_groupbox. appendChild (addon_box)
                          
                        addon_groupbox. appendChild (button_box)
            osnov_box. appendChild (addon_separator)
            addon_separator.setAttribute("style", "height: 2px")           
           
            var mi =<menuitem xmlns={xulns} label={e. name + " " + e. version}/>
            mi ["@id_"] = e. id;
            if (e. iconURL)
                        {
                               mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] = e. iconURL;
                        }
                        else{
                        mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] =iconURL;
                        }
                        if (e. optionsURL)
                                mi ["@oncommand"] = "window. openDialog ('" + e. optionsURL + "', '', 'chrome,dialog=0,resizable,titlebar,toolbar,centerscreen');";
                    var mi=cbu. makeXML (mi)
                   
                        addon_box. appendChild (mi);
                        but(e,button_box,mi)
                        but_del(e,button_box)
                        but_open(e,button_box)
                        }}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////                       
        osnov_box. appendChild (document.createElement('menuseparator'))
        var all_addons= document.createElement('caption')
         all_addons.setAttribute("label", "DISABLE ADDONS"+" "+arr1. length)
       
         osnov_box. appendChild (all_addons)
         osnov_box. appendChild (document.createElement('menuseparator'))
        for (var i = 0; i < arr1. length; i++){
        e = arr1[i];
       
        var addon_box = document.createElement('hbox')
                        var addon_groupbox= document.createElement('vbox')
                        var addon_separator= document.createElement('separator')
                       
                        addon_groupbox.setAttribute("style", "border: 1px solid gainsboro;border-radius: 4px")
                        var button_box = document.createElement('hbox')
                          osnov_box. appendChild (addon_groupbox)
                          addon_groupbox. appendChild (addon_box)
                          
                        addon_groupbox. appendChild (button_box)
            osnov_box. appendChild (addon_separator)
            addon_separator.setAttribute("style", "height: 2px")           
           
            var mi =<menuitem xmlns={xulns} label={e. name + " " + e. version}/>
            if (e. iconURL)
                        {
                               mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] = e. iconURL;
                        }
                        else{
                        mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] =iconURL;
                        }
                        mi ["@disabled"] = "true";
                    var mi=cbu. makeXML (mi)
                        addon_box. appendChild (mi);
                        but(e,button_box,mi)
                        but_del(e,button_box)
                        but_open(e,button_box)
                        }       
//////////////////////////////////////////////////////////////////////////////////////////////////////////       
osnov_box. appendChild (document.createElement('menuseparator'))
        var all_addons= document.createElement('caption')
         all_addons.setAttribute("label", "FALSE ADDONS"+" "+arr. length)
       
         osnov_box. appendChild (all_addons)
         osnov_box. appendChild (document.createElement('menuseparator'))
        for (var i = 0; i < arr. length; i++){
        e = arr[i];
       
        var addon_box = document.createElement('hbox')
                        var addon_groupbox= document.createElement('vbox')
                        var addon_separator= document.createElement('separator')
                       
                        addon_groupbox.setAttribute("style", "border: 1px solid gainsboro;border-radius: 4px")
                        var button_box = document.createElement('hbox')
                          osnov_box. appendChild (addon_groupbox)
                          addon_groupbox. appendChild (addon_box)
                          
                        addon_groupbox. appendChild (button_box)
            osnov_box. appendChild (addon_separator)
            addon_separator.setAttribute("style", "height: 2px")           
           
            var mi =<menuitem xmlns={xulns} label={e. name + " " + e. version}/>
            if (e. iconURL)
                        {
                               mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] = e. iconURL;
                        }
                        else{
                        mi ["@class"] = "menuitem-iconic bookmark-item";
                                mi ["@src"] =iconURL;
                        }
                        mi ["@disabled"] = "true";
                    var mi=cbu. makeXML (mi)
                        addon_box. appendChild (mi);
                        //but(e,button_box)
                        but_del(e,button_box)
                        but_open(e,button_box)
                        }                
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////       
        
         osnov_box.setAttribute("orient","vertical")
         cPopup. appendChild (osnov_box)
       
        }
       
);
var val = this. getAttribute ("id");
function but(e,button_box) {
var tr = e. id;
var m=document.createElement('button');
m.setAttribute('id_',tr);
if (e. userDisabled){
   m.setAttribute('label',"Вкл")
   }else{
m.setAttribute('label',"Выкл")

}
m.setAttribute('oncommand','var tqa = document.getElementById('+'"'+val+'"'+');tqa.vk(event)');
button_box. appendChild(m)
}

this. vk= function (event){

var bu= event. originalTarget;
    var id= bu. getAttribute ("id_");
    var app = Cc ["@mozilla.org/fuel/application;1"]. getService (Ci. fuelIApplication);
var am = {};
Cu. import ("resource://gre/modules/AddonManager.jsm", am);
    am. AddonManager. getAddonByID
(
       id,
        function (e)
        {
   
   if (e. userDisabled){
   e. userDisabled=false}
   else{
   e. userDisabled=true}
   })}

function but_del(e,button_box) {
var tr = e. id;
var m=document.createElement('button');
m.setAttribute('id_',tr);
m.setAttribute('label',"del")
m.setAttribute('oncommand','var tqa = document.getElementById('+'"'+val+'"'+');tqa.del(event)');
button_box. appendChild(m)
}

this. del= function (event){
var bu= event. originalTarget;
    var id= bu. getAttribute ("id_");
    var app = Cc ["@mozilla.org/fuel/application;1"]. getService (Ci. fuelIApplication);
var am = {};
Cu. import ("resource://gre/modules/AddonManager.jsm", am);
   am. AddonManager. getAddonByID
(
       id,
        function (e)
        {
           e.uninstall();
        })
   
   }

function but_open(e,button_box) {
var tr = e. id;
var m=document.createElement('button');
m.setAttribute('id_',tr);
m.setAttribute('label',"open")
m.setAttribute('oncommand','var tqa = document.getElementById('+'"'+val+'"'+');tqa.open_(event)');
button_box. appendChild (m)}

this.open_=function(event){
   
    var bu= event. originalTarget;
    var id= bu. getAttribute ("id_");

  var file = Components.classes["@mozilla.org/file/directory_service;1"].
  getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
file.append("extensions");

file.append(id);

var tr=file.exists()

if(tr==true){

let nsLocalFile = Components.Constructor("@mozilla.org/file/local;1",
                                           "nsILocalFile", "initWithPath");                                          
  new nsLocalFile(file.path).reveal();}
else{
var id=id+'.xpi'

var file = Components.classes["@mozilla.org/file/directory_service;1"].
  getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
file.append("extensions");
file.append(id);
var local = Components.classes["@mozilla.org/file/local;1"].
  createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].
  createInstance(Components.interfaces.nsIProcess);
var args = [file.path]
local.initWithPath("e:\\pro\\WinRAR\\WinRAR.exe");
process.init(local);
process.run(false, args, args.length);}}

cloneCBcontext.makeMenu(cPopup);
this.setAttribute("context", popupID);

if (typeof Local_Install != "object") return;

var test = document.getElementById("cbContext-extensions");
if (test) test.parentNode.removeChild(test);

var cbPopup = document.getElementById("custombuttons-contextpopup-subCall").cloneNode(true); // Cb context
var subMenu = document.createElement("menu");
subMenu.setAttribute("label", "Custom Button");
subMenu.appendChild(cbPopup.lastChild);

var extensionsPopup = document.getElementById("emb-context");
var popup = extensionsPopup.cloneNode(true);
popup.id = "cbContext-extensions";
popup.appendChild(document.createElement("menuseparator"));
popup.appendChild(subMenu);
extensionsPopup.parentNode.appendChild(popup);

this.setAttribute("context", popup.id);

Добавлено 27-12-2011 16:55:57
fe74ae6e8f98f7a2ae7983ae6380dbc5.png

firefox forever

Отредактировано Ste_pan (27-12-2011 16:55:57)

Отсутствует

 

№336627-12-2011 17:09:35

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Custom Buttons

Ste_pan
Кнопка интересная, спасибо. Вот только расширения располагаются не в алфавитном прядке, исправьте плиз.
И не понятно, что вы хотели показать скрином, очень мелкий.

Отсутствует

 

№336727-12-2011 20:04:00

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Ste_pan
Спасибо, хорошая кнопка.
Просьба:
убрать пункт Custom Button из меню и сделать CB меню по Ctrl+ПКМ
убрать или сделать отключаемыми пункты ALL  ADDONS, DISABLE ADDONS, FALSE ADDONS,  потому что уже есть хорошая кнопка Extension List которая тоже показывает эту информацию.

Отредактировано bunda1 (28-12-2011 01:03:07)

Отсутствует

 

№336827-12-2011 20:08:20

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Custom Buttons

bunda1 пишет

Ste_pan
Спасибо, хорошая кнопка. Просьба: убрать пункт Custom Button из меню и сделать CB меню по Ctrl+ЛКМ убрать или сделать отключаемыми пункты ALL  ADDONS, DISABLE ADDONS, FALSE ADDONS,  потому что уже есть хорошая кнопка Extension List которая тоже показывает эту информацию.

+1

Отсутствует

 

№336928-12-2011 13:31:12

Ste_pan
Участник
 
Группа: Members
Откуда: приморский край п.сибирцево
Зарегистрирован: 13-02-2011
Сообщений: 63
UA: Firefox 7.0

Re: Custom Buttons

Удалено
Замечание п. 3.7
Sergeys

Отсутствует

 

№337029-12-2011 00:27:51

WW
Web traveler
 
Группа: Members
Откуда: Сибирь
Зарегистрирован: 21-12-2011
Сообщений: 95
UA: Firefox 10.0

Re: Custom Buttons

Здравствуйте, в теме о кнопках для Сustom Buttons http://forum.mozilla-russia.org/viewtopic.php?id=41987 есть две кнопки которые мне нужны, вернее. с одинаковой функцией
  - Up and Down on Page(прокрутка страницы вверх, вниз ) устанавливал обе кнопки, но эффект один, прокрутка только вверх. Не могу понять, в чём дело. Пробовал в 11 то же самое, сам на 10 постоянно,  может не совместимо с этими лисами? Делать то ничего не надо, вставил в строку поиска, и счастье тебе) иконку потом вставил)

Походил по форуму, не знаю где такой вопрос задать не сочтите за флуд. Создал новую панель, а как её убрать теперь не пойму, подскажите пожалуйста(экспериментатору):D Заранее спасибо!:|
Со вторым разобрался, убрал панельку) С нашим лисёнком скоро стану программером)

Отредактировано WW (29-12-2011 17:24:25)


Firefox - самый лучший брауз!!!

Отсутствует

 

№337129-12-2011 21:20:49

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

WW пишет

Здравствуйте, в теме о кнопках для Сustom Buttons http://forum.mozilla-russia.org/viewtopic.php?id=41987 есть две кнопки которые мне нужны, вернее. с одинаковой функцией
  - Up and Down on Page(прокрутка страницы вверх, вниз ) устанавливал обе кнопки, но эффект один, прокрутка только вверх. Не могу понять, в чём дело. Пробовал в 11 то же самое, сам на 10 постоянно,  может не совместимо с этими лисами?

Up and Down on Page(Firefox 3.6-11)

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EUp%20and%20Down%20on%20Page%28Double%20click%20-%20middle%20of%20page%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAAC+klEQVR4nHWTX2hbZRjGf993ck6yJLYlWWur1aE0ZyizAxHs7Oqq3cZ0Yyg6EBHFOxWGipNRRsvAG7UXwhS9mOLohcg6tKjNdG5rwelQQZBNiieMlm2uNu2JJk1izp98nxdpnL3Yc/u+/Hif9+ERWmt++Hl2ua0lGVVa05TSUKt5BH7AcqEow0D9tbJS3mVEIhellOSc3zl86AUiAFHLStxld8f4n7TW1HxFPYRLc1dIJtbFL80vTF+9trgvGo3ONPckN5AQAilBSIU0JJ1d6xnsv2f9xsyGb8xI5EmlbwCY+3uOuqqjAQGEoU+q20CZZXTUY9O9N1v9Q3dMLBcWDxnrjLWAqdwUPUd6GDkzgud7CCkwpCDn5nD9PFWK5P0FcoUcWoUjaL0W8HL2eX7c/zVfzU9iRiJIIQgDheM6uEGeCiXy/gKO6xD43loLQ+MP8tbeN6nf5PHOY28w8NEW/DAg0GED4C9RociS/yeO62AYRgMwcKxPHL/8Umxj953ctqGds94pvNYy2zdv5cDnj1Neqa0CrltwCg5CAJ4gAoTbHngGt+0K39dnUFIxU53Gv9Vn191P8OiH2yAicYMlKqRYDBbIuTlu0ZtQw0oIDqMEQmilOTs6wclqls1mL8+OvYZSCoFgzczq5bmxA6i6QqMRWmvO/3Txn/5sb2z06f1ssXv5cvY0H5w4ztbb7+fgnhcptF0lX1+iGnoUvTJ+xWdH6w4Ojo81nqiATDpD2monTgsdVieZVIbx7ZN8d/4Tzk3P0m8MIpVkMP4QLX90kp06wX2pbvO/FOy0TdrsIEErHVYXmXQGrTWvD3yGc22Oy/N5Ho7uJFpMcvrXc5i/9NUSwlSymaWdtlcvaADslE2zW5/uPsnwF8PIksWrkyNM7P0WoeH9p7INgNJNC9cvsNM2yYRFMhEjmYjz9s5j9L33CEOdezBNEyEEQKONxVKpavfYsbTZToIkHVYXQdrgyLtHK7FoXOvVZrxijsrWC23q6G8fUy6teAD/Asu3UalfAv+YAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.leftclick%20%3D%20function%28e%29%20%7B%0A%20%20if%20%28content.scrollY%20%3C%20%28content.scrollMaxY%29/2%29%20%7B%0A%20%20%20%20content.scrollTo%280%2C%20content.scrollMaxY%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20content.scrollTo%280%2C%200%29%3B%0A%20%20%7D%0A%7D%3B%0A%0Athis.leftDclick%20%3D%20function%28e%29%20%7B%0A%20%20content.scrollTo%280%2C%20%28content.scrollMaxY%29/2%29%3B%0A%7D%3B%0A%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A//var%20win%20%3D%20content%3B%0A%0A//alert%28win.innerHeight%20+%20win.scrollMaxY%29%3B%0A//content.scrollTo%280%2C%20win.innerHeight%20-%20win.scrollMaxY%29%3B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%0ALeft%3A%0A%0A%20%20%20%20*%20Go%20to%20Bottom%0A%20%20%20%20*%20If%20at%20the%20bottom%20-%20Go%20to%20Top%0A%0AMiddle%3A%0A%0A%20%20%20%20*%20Go%20to%20Middle%20of%20Page%0A%0ARight%3A%0A%0A%20%20%20%20*%20Go%20to%20Top%0A%20%20%20%20*%20If%20at%20the%20Top%20-%20Go%20to%20Bottom%0A%0ALeft%20Dbl%3A%0A%0A%20%20%20%20*%20Go%20to%20Middle%20of%20Page%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано bunda1 (29-12-2011 21:29:04)

Отсутствует

 

№337229-12-2011 21:52:35

WW
Web traveler
 
Группа: Members
Откуда: Сибирь
Зарегистрирован: 21-12-2011
Сообщений: 95
UA: Firefox 10.0

Re: Custom Buttons

Спасибо большое, теперь работает!+1 Вам!


Firefox - самый лучший брауз!!!

Отсутствует

 

№337301-01-2012 21:44:11

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 507
UA: Firefox 9.0

Re: Custom Buttons

Здравствуйте
Искал решение своего вопроса, но не совсем то, что нужно получил.
Необходим пункт в контекстном меню вкладок: Остановить все вкладки (либо: Остановить загрузку всех вкладок)
Возможно ли это сделать не создавая такую кнопку?

Отсутствует

 

№337401-01-2012 22:20:49

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

skynet281978 пишет

Здравствуйте
Искал решение своего вопроса, но не совсем то, что нужно получил.
Необходим пункт в контекстном меню вкладок: Остановить все вкладки (либо: Остановить загрузку всех вкладок)
Возможно ли это сделать не создавая такую кнопку?

Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

//"Stop Loading All Tabs" in Tab Context Menu.............................................
(function() {
//выходим, если функция уже выполнялась
if (document.getElementById("StopAllTab")) return;

//новый пункт в меню вкладок
//настройки языка
var locale = Components.classes["@mozilla.org/preferences-service;1"]
                         .getService(Components.interfaces.nsIPrefBranch)
                         .getCharPref("general.useragent.locale");
   
var tabContext = document.getAnonymousElementByAttribute(
                        gBrowser, "anonid", "tabContextMenu") ||
                 gBrowser.tabContainer.contextMenu;
                 
var menuitem = tabContext.insertBefore(document.createElement("menuitem"), document.getElementById("context_reloadTab"));                 
menuitem.id = "StopAllTab";
menuitem.setAttribute("label", locale.indexOf("ru") == -1?"Stop Loading All Tabs":"Остановить все вкладки");
menuitem.setAttribute("oncommand", "StopTab(event);" );
tabContext.insertBefore(menuitem,tabContext.firstChild.nextSibling);

//Остановить все вкладки
StopTab = function(event){
    var len = gBrowser.mPanelContainer.childNodes.length;
for (var i = 0; i < len; i++) {
  gBrowser.getBrowserAtIndex(i).stop();
}
     };
})();

Отредактировано bunda1 (01-01-2012 22:28:51)

Отсутствует

 

№337501-01-2012 22:37:07

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 507
UA: Firefox 9.0

Re: Custom Buttons

bunda1 спасибо что откликнулись на вопрос.
Дело в том что ни одной кнопки созданной до этого нет.
Поэтому я так понял, чтобы этот пункт появился необходимо чтобы кнопка была на панели.
Но это уже не просто пункт меню, а плюс ещё и не нужная кнопка.
Это единственный вариант?

Может быть есть вариант сделать кнопку невидимой?
Типа как невидимый разделитель, но чтобы минимум пространства отнимало на панели.

Отредактировано skynet281978 (01-01-2012 22:39:38)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]