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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№695110-10-2013 00:27:45

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

lmiol пишет: за настройки няшное спасямб ) а вот прокси открывается в новой вкладке а не отдельном окошке Proxy

нене я писал что там по ссылке открывается в вкладке, а нужно чтобы в окошке сразу без вкладок.

кстати в этом скрипте (это другой не тот что ты линковал) довольно интересная задумка но там, нужно переделать чтобы левой кнопкой открывалось окошко с прокси настройками средней переключать так как у него сделано на левую а на правую сделать чтобы открывалось стандартное меню файерфокса (т.е. то стандартное меню с пунктами где написано Панель меню Панель навигации Панель Закладок. и Настройки, а редактирование данной кнопки сделать СTRL+SHIFT+ALT+Правая) или забить на него и тот что сделал ты сделать так чтобы на левую просто открывались прокси настройки, а на правую открывалось стандартное меню файерфокса, , а редактирование данной кнопки сделать СTRL+SHIFT+ALT+Правая)
и получится что как будто кнопка стандартная =)
но проблема уже в другом началась, в моей portable версии фф 3.6.25 не хот ят сохраняться позиции того что я изменил ( а именно, я добавил кнопки перезахажу в фф их нет, я убрал адресную строку для ввода ссылки с панели навигации и убрал кнопку обновить и после перезахода в фф они снова на месте, вообщем ничего не хочет сохраняться)

Добавлено 10-10-2013 00:42:11
решил проблему переместив все стандартные кнопки на панель закладок они сохранились, но вот новые сделанные через custom buttons не сохраняются
=(
печалька =(

Добавлено 10-10-2013 00:47:50
http://forum.mozilla-russia.org/viewtopic.php?pid=484057
читал эту страничку у человека похожая трабла

Отредактировано lmiol (10-10-2013 00:47:50)

Отсутствует

 

№695210-10-2013 01:07:59

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

и можно было бы какимто образом через about:config или еще каким-нитиь лишиться вот этой кнопки http://img96.imageshack.us/img96/1556/5xil.png добавляющей закладку из адресной строки
ведь в данном случае закладок не будет вообще никаких.

Отредактировано lmiol (10-10-2013 01:08:32)

Отсутствует

 

№695310-10-2013 01:55:07

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 25.0

Re: Custom Buttons

lmiol

#star-button { display: none !important;}


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№695410-10-2013 02:25:54

Loom
Участник
 
Группа: Members
Зарегистрирован: 29-08-2013
Сообщений: 11
UA: Firefox 24.0

Re: Custom Buttons

А можно сделать кнопку, которая автоматически бы удаляла "Описание" - "Description", при добавлении закладок? :rolleyes:

Отсутствует

 

№695510-10-2013 05:07:52

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

villa7 пишет

lmiol#star-button { display: none !important;}

спс

принялся возиться с другой портебл версией 3.6.28 с ней пока все отлично =)

Отредактировано lmiol (10-10-2013 06:45:40)

Отсутствует

 

№695610-10-2013 15:44:15

Kiril__777
Участник
 
Группа: Members
Зарегистрирован: 13-07-2009
Сообщений: 393
UA: Firefox 20.0

Re: Custom Buttons

bunda1
а вот это можете подправить?

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

Выделить код

Код:

["Поиск по текущему сайту", function(){var getSel=function(w){var s,d=w.document;if(d.selection){var r=d.selection.createRange();s=r?r.text:''}else{s=d.getSelection().toString();if(!s){var e,t=d.getElementsByTagName('textarea'),u=d.getElementsByTagName('input'),i=t.length;while(e=(i>0)?t[--i]:u[-i--])try{if(e.offsetHeight>0&&(s=e.value.substring(e.selectionStart,e.selectionEnd)))break}catch(x){}}};if(!s)for(var j=0,f;f=w.frames[j];j++){try{if(s=getSel(f))break}catch(x){}};return s};var w=window,s=w.prompt('Поиск на этом сайте с помощью Google',getSel(w));if(s){w.open('http://www.google.com/search?as_q='+encodeURIComponent(s)+'&as_sitesearch='+w.location.hostname)}}],


И как добавить разделители в этом меню? прошлый вариант не работает :с

Отредактировано Kiril__777 (10-10-2013 15:46:11)

Отсутствует

 

№695710-10-2013 16:49:54

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

Re: Custom Buttons

Loom пишет

А можно сделать кнопку, которая автоматически бы удаляла "Описание" - "Description", при добавлении закладок? :rolleyes:

Лучше для этого использовать CSS код: Уроки стилистики (CSS) | Форум Mozilla Россия

Отсутствует

 

№695810-10-2013 20:42:06

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 22.0

Re: Custom Buttons

Какой код должен быть если я хочу чтобы правый клик + нажатый Контрол вызывали функцию?

Отсутствует

 

№695910-10-2013 20:57:47

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

Re: Custom Buttons

Ferguss114 пишет

Какой код должен быть если я хочу чтобы правый клик + нажатый Контрол вызывали функцию?

Выделить код

Код:

this.onclick = function(e) {
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          alert("1");
          }
};

Отсутствует

 

№696010-10-2013 21:30:31

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

Re: Custom Buttons

Kiril__777 пишет

bunda1
а вот это можете подправить?
И как добавить разделители в этом меню? прошлый вариант не работает :с

Выделить код

Код:

// Добавить новый пункт "Искать страницу" в меню kнопки "Firefox", от 10.10.2013. ................................
(function () { 
   var img = "data:image/x-icon;base64,AAABAAEAEhAAAAEAGADoAwAAFgAAACgAAAASAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx9vm0y9y40OC50OG40OG40OG40OG40OG40OG40d68z+yuz8a34qYAAAAAAAAAAAAAAAAEkQAAANLl9Dya11Oo2Eqg0kyh00uh0kqg0kyf0kqgzkqYzz2MrRexIxfFA6PhpQAAAAAAAAAAAASRAAAA1Of4Sq3rXKLUYqjeYajeY6vgZq7kYqrcYaHYSoasI7wsMPMqLu8yHdUdrOCqAAAAAAAABJEAAADU5/dGp+VireB4xfx2xPpyvvNprt5ss+pgpcsmwjct8iYz7DU17DM58zcl2SSu464AAAAEkQAAANTo+Eio5mOr33XA93bE+WWs3HOu0V6jyS6+PWvwXHPvdUDuQDfuNWryaXXwdDLOM7DnsQSRAAAA1Oj4RqfmZK3gesj8dsX4d8f5e8n7arncPbNzKKNMZdtiX/dfR/FDl/KWWMNYe9R7v+u/BJEAAADW5/hFqOZ0uuKc3PiU1/aU2PaV1/SU1fGZxv9aop1a21d2+3Vg9WSW8peA04EAAAAAAAAEkQAAANTm9kuv63TD8Gy46W+76m666m+762286W+z5ziVh2fYXLr7ran2npXolm/ObgAAAAAAAASRAAAA1Ob3SaznWqPSXanZXanZXqvaYa3eYKzbXqbZUKW0R8JpPbZzRbp4a81oo+CjAAAAAAAABJEAAADV5/hGqOVmteOA1f990v980fx0xe91zfl/2f9/1/+d3Pxgt/Jsvv8AAAAAAAAAAAAAAAAEkQAAANTn90eq5WW14nzS/X3U/2q34XazzHvG73bP/XnS/ZLb9F225Wq+8QAAAAAAAAAAAAAAAASRAAAA0+f3SKrlZbfletX/edH/d9D9gtv+gdn/etT/edf/lN36W7foa772AAAAAAAAAAAAAAAABJEAAADW6PhEqOd/wOCk5PqX2/ea3viY3PeY3faZ3/ia3/ig2/Rctelsv/cAAAAAAAAAAAAAAAAEkQAAAM/k9kuv6nnE63O/7XPA7XPA7nTA7XXA7XO/7XTA7HK+7GnC8Ge79QAAAAAAAAAAAAAAAASRAAAA3u34ccDvoOb8n+P7oOT8oOT8oOT8oOT8oeT8n+T8pOf9jdn5jMn1AAAAAAAAAAAAAAAABJEAAAAAAADB4vtRtvRbv/dZvvZZvvZavvdavvZavvZcwPZXvfZ3w/YAAAAAAAAAAAAAAAAAAAAEkYADwEGAAcBBgADAQYAAQEGAAABBgAAAQYAAwEGAAMBBgADAQYADwEGAA8BBgAPAQYADwEGAA8BBgAPAQcAHwEE=";
   var menu = document.createElement("menu");
   menu.setAttribute("label", "Искать страницу");
   menu.setAttribute("class", "menu-iconic");
   menu.setAttribute("image", img );
   menu.onmouseout = function() { menu.removeAttribute('_moz-menuactive') }; 

   var array = [
       ["в кэше Google", function() gBrowser.selectedTab = gBrowser.addTab('http://www.google.com/search?q=cache:' + content.location) ],
       ["на Archive.org", function() gBrowser.selectedTab = gBrowser.addTab('http://web.archive.org/web/' + content.location) ],
       ["separator"],
       ["Поиск по текущему сайту", function(){var text = document.commandDispatcher.focusedWindow.getSelection().toString();if ( text == ''){ var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type =="text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var text = theBox.value.substring(startPos, endPos); } }; if ( text !== '' ) var text = text.toString().replace(/^\s+|\s+$/g,""); if ( text == '' ) {     var value = custombuttons.promptBox('Поиск по сайту в Google', 'Bведите текст ....');     var text = value[0] ? value[1] : ''; }if ( text == '' ) return; var text = escape( convertFromUnicode("UTF-8", text) ); var url = content.document.domain; var url = encodeURIComponent( url ); var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url; gBrowser.selectedTab = gBrowser.addTab( url ); }],
               ];
   var menuPopup = document.createElement("menupopup");
   menuPopup.onmouseover = function() { menu.setAttribute('_moz-menuactive', 'true') };
   array.forEach(function( m ) {
        if ( m[0] == "separator" ) { menuPopup.appendChild( document.createElement("menuseparator") ); return };
        var menuItem = document.createElement("menuitem");
        menuItem.setAttribute("label", m[0] );
        menuItem.addEventListener("command", m[1] );
        menuPopup.appendChild( menuItem );
   });
   menu.appendChild( menuPopup );

   var appMenu = document.getElementById("appmenuSecondaryPane");
   var appHelp = document.getElementById("appmenu_help");
   appMenu.insertBefore( menu, appHelp );
   appMenu.insertBefore( document.createElement("menuseparator"), appHelp );
   
   addDestructor(function() { 
      appMenu.removeChild( menu.nextSibling );
      appMenu.removeChild( menu );
   });
})();

Отсутствует

 

№696110-10-2013 23:30:12

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 22.0

Re: Custom Buttons

bunda1 пишет:

Выделить код

Код:

this.onclick = function(e) {
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          alert("1");
          }
};

А зачем это: && !e.shiftKey && !e.altKey && !e.metaKey?

Почему не достаточно просто e.button == 2 && e.ctrlKey?

Отредактировано Ferguss114 (10-10-2013 23:30:48)

Отсутствует

 

№696211-10-2013 00:07:20

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

Re: Custom Buttons

Ferguss114 пишет

Почему не достаточно просто e.button == 2 && e.ctrlKey?

Ну можно и так.

Отсутствует

 

№696311-10-2013 00:58:43

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 22.0

Re: Custom Buttons

bunda1
Спасибо!

Отсутствует

 

№696411-10-2013 07:15:32

Loom
Участник
 
Группа: Members
Зарегистрирован: 29-08-2013
Сообщений: 11
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

Лучше для этого использовать CSS код: Уроки стилистики (CSS) | Форум Mozilla Россия

Но мне не скрыть нужно, а чтобы при экспорте закладок в HTML, не засорять отображение. :blush:

Отсутствует

 

№696511-10-2013 11:27:34

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

а не подскажите как правильно вписать контекстное меню панелей навигации и прочего (вроде это toolbar-context-menu или вот скрин http://img801.imageshack.us/img801/3706/f83q.png )
на правую кнопку

просмотрел все готовые кнопки но так и не нашел везде стандартное меню кнопки (т.е. меню от этого аддона для редактироания кнопки ипрочего)
видимо это надо имитировать и писать вручную такие строчки да?

Отредактировано lmiol (11-10-2013 18:50:02)

Отсутствует

 

№696611-10-2013 14:10:46

Kiril__777
Участник
 
Группа: Members
Зарегистрирован: 13-07-2009
Сообщений: 393
UA: Firefox 20.0

Re: Custom Buttons

bunda1
Спасибо!

Отсутствует

 

№696711-10-2013 19:26:10

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

Re: Custom Buttons

lmiol пишет

а не подскажите как правильно вписать контекстное меню панелей навигации ...

В вкладку код:

Выделить код

Код:

if ( !this.lastChild ) {
     var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
     this.appendChild( cloneMenu );
};
this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );

Отредактировано bunda1 (11-10-2013 19:30:34)

Отсутствует

 

№696812-10-2013 02:00:25

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true ); this.appendChild( cloneMenu ); }; this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );

спс
правда не совсем разобрался =)
если добавляю в код - то открывается на CTRL+ЛКМ (а должна просто на правую)

если в навигацию под баттон 2 то http://img818.imageshack.us/img818/1280/42az.png =)


зы код инициализации
this.pref='network.proxy.type';
var brand = document.getElementById("bundle_brand"),appName = brand.getString("brandShortName");
this.setState=function(){
var state=custombuttons.getPrefs(this.pref);
               if (state==0){
  this.image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
  this.checked=false;
  this.tooltipText="Параметры соединения\nБез прокси";
        }else{
  if (state==1)      {
   this.image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
  this.checked=true;
   this.pxadr=custombuttons.getPrefs("network.proxy.http")
   this.pxprt=custombuttons.getPrefs("network.proxy.http_port")
   this.tooltipText="Параметры соединения\nРучная настройка,текущий прокси:"+this.pxadr+":"+this.pxprt;
     }
else{
  if (state==2)      {
      this.image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
     this.checked=true;
   this.pxcnf=custombuttons.getPrefs("network.proxy.autoconfig_url")
     this.tooltipText="Параметры соединения\nАвтонастройка с URL:"+this.pxcnf;
     }
else{
  if (state==4)      {
     this.image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
   this.checked=true;
     this.tooltipText="Параметры соединения\nАвтоматическое определение прокси для этой сети";
     }
else{
  if (state==5)      {
  this.image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
   this.checked=true;
  this.tooltipText="Параметры соединения\nСистемные настройки прокси";
     }
     else{}     
}
}}}}
this.PS= Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob={};
this.ob.observe=this.setState.bind(this);
this.PS.addObserver(this.pref,this.ob,false);
this.setState();

this.onclick = function(event) {
if(event.button == 1){
var curstate=custombuttons.getPrefs(this.pref);
if (curstate==0){custombuttons.setPrefs(this.pref,1);}
if (curstate==1){custombuttons.setPrefs(this.pref,2);}
if (curstate==2){custombuttons.setPrefs(this.pref,4);}
if (curstate==4){custombuttons.setPrefs(this.pref,5);}
if (curstate==5){custombuttons.setPrefs(this.pref,0);}
}
else if(event.button == 2) {
gShowPopup(this);
}

    if(event.button == 0 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        event.preventDefault();
          cbu.getPrefs("Proxy.connectionsInTab") ? openConnectionsInTab(): openConnections();
        event.stopPropagation();
}};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "", "centerscreen, resizable=no");
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // обработчик закрывает настройки прокси по клику на странице ....
   gBrowser.addEventListener("click", function() {
            this.removeEventListener("click", arguments.callee, true);
            try { win.close() } catch(e) {}; // закрыть окно
            }, true);
};

Отредактировано lmiol (12-10-2013 03:32:20)

Отсутствует

 

№696912-10-2013 12:31:50

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

Re: Custom Buttons

lmiol пишет

правда не совсем разобрался =)
если добавляю в код - то открывается на CTRL+ЛКМ (а должна просто на правую)

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

Выделить код

Код:

this.pref = 'network.proxy.type';

this.setState = function() {
   var state = cbu.getPrefs( this.pref );
   if ( state==0 ) {
        this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
}
this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver( this.pref, this.ob, false);
this.setState();


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs(this.pref);
          if (curstate==0) cbu.setPrefs(this.pref,1);
          if (curstate==1) cbu.setPrefs(this.pref,2);
          if (curstate==2) cbu.setPrefs(this.pref,4);
          if (curstate==4) cbu.setPrefs(this.pref,5);
          if (curstate==5) cbu.setPrefs(this.pref,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
          this.appendChild( cloneMenu ); };
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "", "centerscreen, resizable=no");
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // обработчик закрывает настройки прокси по клику на странице ....
   gBrowser.addEventListener("click", function() {
            this.removeEventListener("click", arguments.callee, true);
            try { win.close() } catch(e) {}; // закрыть окно
            }, true);
};

Отсутствует

 

№697012-10-2013 19:40:43

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

Re: Custom Buttons

Есть вот такой скрипт для дополнения userChromeJS, добавляет в диалог сохранения дополнительные кнопки и поля. Может кто найдется переделать в кнопку? У меня не получается, просто наверно мало знаний, а так получилась бы очень хорошая кнопка.

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

Выделить код

Код:

// @homepageURL    https://github.com/ywzhaiqi/userChromeJS/blob/master/downloadPlus.uc.js
// ==/UserScript==

(function() {

    let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
    if (!window.Services) Cu.import("resource://gre/modules/Services.jsm");

    var ns = {
        get appVersion()  Services.appinfo.version.split(".")[0],
        get mainwin() Services.wm.getMostRecentWindow("navigator:browser"),

        init: function(){
            switch(location.href){
                case "chrome://mozapps/content/downloads/unknownContentType.xul":
                    ns.download_dialog_changeName();      
                    ns.download_dialog_saveAs();          
                    ns.download_dialog_showCompleteURL(); 
                    ns.saveAndOpen();
                    break;
            }
        },

  
        saveAndOpen: function(){
            let acceptBtn = document.documentElement.getButton("accept");
            let saveBtn = $("save");

            var saveAndOpen = document.getAnonymousElementByAttribute(document.querySelector("*"), "dlgtype", "extra2");
            saveAndOpen.parentNode.insertBefore(saveAndOpen, acceptBtn.nextSibling.nextSibling);
            saveAndOpen.setAttribute("hidden", "false");
            saveAndOpen.setAttribute("label", "Сохранить и открыть");
            saveAndOpen.addEventListener("command", function(event){
                ns.mainwin.saveAndOpen.urls.push(dialog.mLauncher.source.asciiSpec);
                saveBtn.click();
                acceptBtn.disabled = 0;
                acceptBtn.click()
            }, false);
        },

        download_dialog_changeName: function () {
            if (location != "chrome://mozapps/content/downloads/unknownContentType.xul") return;

            let downLocation = $("location");
            let locationText = $("locationtext");

            $("mode").addEventListener("select", function() {
                if (dialog.dialogElement("save").selected) {
                    if (!locationText) {
                        locationText = downLocation.parentNode.insertBefore(document.createElement("textbox"), downLocation);
                        locationText.id = "locationtext";
                        locationText.setAttribute("style", "margin-top:-2px;margin-bottom:-3px");
                        locationText.value = downLocation.value;
                    }
                    downLocation.hidden = true;
                    locationText.hidden = false;
                } else {
                    locationText.hidden = true;
                    downLocation.hidden = false;
                }
            }, false)

            dialog.dialogElement("save").selected && dialog.dialogElement("save").click();

            window.addEventListener("dialogaccept", function() {
                if ((locationText.value != downLocation.value) && dialog.dialogElement("save").selected) {
                    if(ns.appVersion >= 23){
                        ns.mainwin.eval("(" + ns.mainwin.internalSave.toString()
                            .replace("let ", "")
                            .replace("var fpParams", "fileInfo.fileExt=null;fileInfo.fileName=aDefaultFileName;var fpParams") + ")")
                            (dialog.mLauncher.source.asciiSpec, null, locationText.value, null, null, null, null, null, null,
                                ns.mainwin.document, Services.prefs.getBoolPref("browser.download.useDownloadDir"), null);
                    }else{
                        dialog.mLauncher.saveToDisk(dialog.promptForSaveToFile(dialog.mLauncher, window, locationText.value), 1);
                        dialog.onCancel = null;
                    }

                    document.documentElement.removeAttribute("ondialogaccept");
                }
            }, false);
        },
        download_dialog_saveAs: function () {
            var saveas = document.documentElement.getButton("extra1");
            saveas.setAttribute("hidden", "false");
            saveas.setAttribute("label", "Сохранить как");

            saveas.addEventListener("command", function(event){
                let locationText = $("locationtext");

                if(ns.appVersion >= 23){
                    ns.mainwin.eval("(" + ns.mainwin.internalSave.toString().replace("let ", "").replace("var fpParams", "fileInfo.fileExt=null;fileInfo.fileName=aDefaultFileName;var fpParams") + ")")
                        (dialog.mLauncher.source.asciiSpec, null, (locationText ? locationText.value : dialog.mLauncher.suggestedFileName), null, null, null, null, null, null, ns.mainwin.document, 0, null);
                }else{
                    var file = (dialog.promptForSaveToFileAsync || dialog.promptForSaveToFile).call(dialog, dialog.mLauncher, window, dialog.mLauncher.suggestedFileName, "", true);
                    if (file) {
                        dialog.mLauncher.saveToDisk(file, 1);
                        dialog.onCancel = function() {};
                    }
                }
                close();

            }, false);
        },
        download_dialog_showCompleteURL: function () {
            var s = $("source");
            s.value = dialog.mLauncher.source.spec;
            s.setAttribute("crop", "center");
            s.setAttribute("tooltiptext", dialog.mLauncher.source.spec);
            s.addEventListener("dblclick", function() {
                Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper)
                    .copyString(dialog.mLauncher.source.spec)
            }, false);
        }
    };

    ns.init();

    function $(id, doc){
        doc = doc || document;
        return doc.getElementById(id);
    }

})();

Отредактировано Andrey_Krropotkin (12-10-2013 19:41:28)

Отсутствует

 

№697113-10-2013 02:32:39

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

lmiol пишет: правда не совсем разобрался если добавляю в код - то открывается на CTRL+ЛКМ (а должна просто на правую)

скрытый текст
this.pref = 'network.proxy.type';

this.setState = function() {
   var state = cbu.getPrefs( this.pref );
   if ( state==0 ) {
        this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
       
  if ( state==2 ) {
       this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
 
  if ( state==5 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
}
this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver( this.pref, this.ob, false);
this.setState();


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
         
     // действие при клике СКМ ....   
     if ( e.button == 1 ) {
          var curstate = cbu.getPrefs(this.pref);
          if (curstate==0) cbu.setPrefs(this.pref,1);
          if (curstate==1) cbu.setPrefs(this.pref,2);
          if (curstate==2) cbu.setPrefs(this.pref,4);
          if (curstate==4) cbu.setPrefs(this.pref,5);
          if (curstate==5) cbu.setPrefs(this.pref,0);
          };
     
     // действие при клике ПКМ ....   
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) {
          e.preventDefault(); 
         
          if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
          this.appendChild( cloneMenu ); };
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "", "centerscreen, resizable=no");
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // обработчик закрывает настройки прокси по клику на странице ....
   gBrowser.addEventListener("click", function() {
            this.removeEventListener("click", arguments.callee, true);
            try { win.close() } catch(e) {}; // закрыть окно
            }, true);
};

отлично, только проблемка есть:
при правом клике открывается как и положено а вот при повторном клике открывается стандартное меню кастом баттонс (может както запихнуть стандартное меню на CTRL+SHIFT+ALT+средняя? )

Отредактировано lmiol (13-10-2013 02:33:59)

Отсутствует

 

№697213-10-2013 02:47:58

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

Re: Custom Buttons

lmiol пишет

отлично, только проблемка есть:
при правом клике открывается как и положено а вот при повторном клике открывается стандартное меню кастом баттонс (может както запихнуть стандартное меню на CTRL+SHIFT+ALT+средняя? )

Не на повторном клике а на двойном правом клике. Мне кажется так лучше чем нажимать CTRL+SHIFT+ALT+средняя !

Отсутствует

 

№697313-10-2013 05:32:30

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

Re: Custom Buttons

okkamas_knife пишет

тот же дабл клик иногда может подвести изза внезапного лага и вместо одного действия вы получите другое.

В данном случае дабл клик открывает контекстное меню кнопки по умолчанию.

Отсутствует

 

№697413-10-2013 07:34:06

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

Re: Custom Buttons

okkamas_knife пишет

я обычно юзаю такие варианты

Я тоже :)

Отсутствует

 

№697513-10-2013 12:39:06

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Перестала работать связка расширений для сохранения изображений QuickDrag+Download sort. Хотелось бы заменить их на кнопку, от которой нужно:
1. При перемещении выделенного текста, искать его в новой вкладке, с помощью текущего поисковика.
2. При перемещении изображения, сохранять его в папку ~/Загрузки/DD.MM.YYYY (DD - текущий день, MM - текущий месяц, YYYY - текущий год).
Видел кнопку http://forum.mozilla-russia.org/viewtop … 34#p580134, но там поиск только в Google и изображения не сохраняются.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

Board footer

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