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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№917606-12-2015 02:06:26

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 45.0

Re: Custom Buttons

z_mashine пишет

с амо пришла обнова и снова эта фигня вылезла.

У меня не вылезла, всё вроде работает.

Отсутствует

 

№917706-12-2015 21:35:31

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Firefox 42.0

Re: Custom Buttons

А можно ли отловить кнопкой момент закрытия браузера ? Или он после нажатия "закрыть"/ "выход" перестаёт что-либо соображать и выход только в создании своей кнопки "закрыть" с необходимым действием перед закрытием ?

На форуме

 

№917806-12-2015 22:29:35

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

Re: Custom Buttons

Coroner пишет

А можно ли отловить кнопкой момент закрытия браузера ?

Можно отловить, вот пример - код отслеживает закрытие браузера и если браузер закрывается записывает в about:config строку CB.demo:

Выделить код

Код:

var quit = {
   observe: (subject, topic, data)=> {
      if (data == "shutdown") cbu.setPrefs("CB.demo", "shutdown"); 
   }
};
Services.obs.addObserver(quit, "quit-application", false);

Отсутствует

 

№917907-12-2015 03:12:12

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Firefox 42.0

Re: Custom Buttons

bunda1, не работает. Проверял на [firefox] 42 и на всякий случай [seamonkey] 2.39

UPD: Прошу прощения, всё работает. Сам виноват : додумался проверять не по "выход", а по "рестарт" с помощью CB-кнопки. :blush:
Спасибо !

Отредактировано Coroner (07-12-2015 03:22:40)

На форуме

 

№918007-12-2015 12:27:47

LittleMontana
Участник
 
Группа: Members
Зарегистрирован: 16-11-2013
Сообщений: 214
UA: Firefox 42.0

Re: Custom Buttons

подскажите, как кнопкой вкк\выкл основной стиль на странице? (а не через меню: вид - стиль - без стиля / основной стиль страницы)

Отсутствует

 

№918107-12-2015 13:49:42

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

Re: Custom Buttons

LittleMontana пишет

как кнопкой вкк\выкл основной стиль на странице?

Самый простой варик:

Выделить код

Код:

this.onclick = function(e) {
        if (e.button==0) gPageStyleMenu.disableStyle();                        // ЛКМ - выключить стили
        else if (e.button == 1) gPageStyleMenu.switchStyleSheet('');       // СКМ - включить стили
    };

Отсутствует

 

№918207-12-2015 14:54:24

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.39

Re: Custom Buttons

Подскажите пожалуйста, в Seamonkey для удаления почты из любой папки использую код:

Выделить код

Код:

deleteAllInFolder('emptyJunk');
MsgEmptyTrash();

Все всегда замечательно удаляется, только вот бывают промахи - если встать мышью на учетную запись почты и выполнить код - удалятся все письма и папки (входящие, спам, удаленные, архивы...) :sick:
Как запретить выполнение кода, если выбрана учетная запись?

Отсутствует

 

№918307-12-2015 19:21:26

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

Re: Custom Buttons

LittleMontana пишет

подскажите, как кнопкой вкк\выкл основной стиль на странице? (а не через меню: вид - стиль - без стиля / основной стиль страницы)

Выделить код

Код:

getMarkupDocumentViewer().authorStyleDisabled ? gPageStyleMenu.switchStyleSheet('') : gPageStyleMenu.disableStyle();

Отсутствует

 

№918416-12-2015 23:52:52

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Seamonkey 2.32

Re: Custom Buttons

Всем привет! В симанке пробую

Вот этот код↓

Выделить код

Код:

if ( this.hasAttribute("initialized") ) return;
this.tooltipText = "PotLink \nЛ: Редактировать эту кнопку";


(()=> {
   var menuitem = document.createElement("menuitem");       
   var contextMenu = document.getElementById("contentAreaContextMenu");

   menuitem.id = "open-in-pot";
   menuitem.setAttribute("label", "Отправить в PotPlayer");      
   menuitem.setAttribute("class", "menuitem-iconic");
   menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAE1SURBVHjalNG9S5tRGIbxX8TJVYP/REEdndzsWHB9JwXBvUOXKg4iOEhBKIhYUETXii7V1SEqCh6ymCUQP1DERRFFJT0d8jbE0jeJ93aeB67r5jm5GCPoWzeGT9jESkjUFi2SawBcozed72A8JM7fA4g55Lu4eQT3+Iwfzdq8AXzoZu0jGyUWTniutm7zBjCQZ2W4tqjcM1kg3DZvkwmA35G1U76HepvdtM1ZW4C/Kd8xtU+xoU1ILLcNgGpkqchiEUQMhcRe2wDYLvO1UH+OhMTPtgB3L8we8qtSOw3m8SUkYkvA3iXTB9w+gRJGQ6LQ8ogPr8wdsVWuW79hMiSeMr+xP8/qMIUrpve5fvy/NRPQ2UF/D8c3RKqpdepfaxbgBH3p/BRjWdYswCAmcIGZZtbG/BkAHtLE4ZXQlc8AAAAASUVORK5CYII=");
   document.getElementById("context-sep-open").parentNode.insertBefore( menuitem, document.getElementById("context-sep-open") );
   
   addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu );
   addDestructor( ()=> contextMenu.removeChild(menuitem) );
     
   addEventListener("command", function(e) {
      if ( e.button ) return;
      
      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      file.initWithPath("T:\\folder\\PRO\\multimedia\\PotPlayer1.6.49.608\\PotPlayerMiniXP.exe");
      process.init(file);
      process.run(false, [gContextMenu.getLinkURL()], 1);
             
   }, false, menuitem );
})();


Но потплеер не хочет играть видео, пишет что-то там неправильная ссылка или сервер перегружен. Это из-за чего может быть?


SeaMonkey 2.39 forever

Отсутствует

 

№918517-12-2015 00:56:35

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Seamonkey 2.39

Re: Custom Buttons

emlen пишет

пишет что-то там неправильная ссылка или сервер перегружен. Это из-за чего может быть?

Это может быть из-за перегруженного сервера. :)

Простите, emlen, не удержался от шутки. :angel:
А Вы не могли бы ссылку дать откуда пробуете ? Дело в том что я как раз планирую сделать просмотр через PotPlayer, правда не с этой кнопкой. Хотелось бы попробовать работу во всех ситуациях.
Спасибо.

Отредактировано Coroner (17-12-2015 00:57:16)

На форуме

 

№918617-12-2015 01:19:21

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Seamonkey 2.39

Re: Custom Buttons

Coroner, ссыль на видео? С туба пробовал...:/


SeaMonkey 2.39 forever

Отсутствует

 

№918717-12-2015 01:58:10

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Seamonkey 2.39

Re: Custom Buttons

emlen, а Вы код куда вставляли ? У меня работает в инициализации.
Правда закомментировал строчку if ( this.hasAttribute("initialized") ) return;, но это я думаю не влияет.
А вот в секции код у меня выдавал ошибку про сервер.
P.S. На ютюбе пробовал.

Отредактировано Coroner (17-12-2015 01:58:32)

На форуме

 

№918817-12-2015 11:10:07

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Seamonkey 2.39

Re: Custom Buttons

Coroner, в инициализции, тоже закомментил ту строку для чистоты эксперимента, но увы не робит... а какая версия пот-плеера у Вас?


SeaMonkey 2.39 forever

Отсутствует

 

№918917-12-2015 12:14:06

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Firefox 43.0

Re: Custom Buttons

emlen, 1.6.57461, от 4 декабря сего года, установлен на [windows]7 32 бита. Русский язык кий от самлаба.
Поковыряюсь ещё к вечеру, у меня предположений даже никаких нет. Может с соединением у Вас чего не так, firewall мешает ?

На форуме

 

№919017-12-2015 13:20:03

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 33.0

Re: Custom Buttons

а какие ему порты нужны? Я думал стандартые..


SeaMonkey 2.39 forever

Отсутствует

 

№919117-12-2015 17:49:52

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Seamonkey 2.39

Re: Custom Buttons

По правде говоря не знаю, и проверить сейчас не могу. Но при полной блокировке сети даёт именно такую ошибку.
Поглядите ещё адрес в окне ошибки (кнопка "подробнее" кажется. Правильный-ли ?
Но в общем выходит что код кнопки рабочий. Только ему бы добавить второй пункт меню "добавить в плейлист" (опция /add).
И дублирование инициализации надо выключать, а то 2 одинаковых пункта в меню.

На форуме

 

№919220-12-2015 01:25:17

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Seamonkey 2.39

Re: Custom Buttons

fokanik пишет

bunda1 пишет: No-script запрещает скрипты на всех страницах кроме страниц разрешенных пользователем, а моя кнопка наоборот - аналог расширения YesScript.Теперь понятно, буду пользоваться Вашей кнопкой, только вот иконка все равно не хочет меняться  ---> полностью исчезает.
                    Отредактировано fokanik (19-09-2015 15:30:48)

Тоже исчезает( Где бы взять пофиксеную?


SeaMonkey 2.39 forever

Отсутствует

 

№919320-12-2015 09:32:45

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

Re: Custom Buttons

Куда подевались кнопки переключения прокси, не нашёл в готовых, мне нужна кнопка переключающая на Url и обратно.


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

Отсутствует

 

№919420-12-2015 09:47:31

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 557
UA: Firefox 38.0

Re: Custom Buttons

Эта? Под названием "Proxy"
подправишь если чё

скрытый текст
// Proxy от 11.12.2013.

// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {     
   
   if ( e.button == 0 ) {
        cbu.setPrefs("network.proxy.type", (cbu.getPrefs("network.proxy.type") == 2 ) ? 5 : 2 );
        }
                     
   if ( e.button == 1 ) menuPopup.showPopup( self, -1, -1, "popup", "bottomleft", "topleft");
         
   if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) {
        e.preventDefault();
        cbu.getPrefs("Proxy.connectionsInTab") ? openConnectionsInTab(): openConnections();
        }
};



// Проверить наличие строк в about:config и создать если не существует ................................
if ( !cbu.isPref("Proxy.reset") ) {
     ["Proxy.reset", "Proxy.connectionsInTab", "Proxy.inContextMenu"].forEach(function( pref ) { cbu.setPrefs( pref, false ) });
};



// Подсказка для кнопки ................................
this.onmouseover = function() {
     var address = Application.prefs.getValue("network.proxy.http", 0);
     var port = Application.prefs.getValue("network.proxy.http_port", 0);
                   
     this.tooltipText = "Proxy \nЛ: Переключить прокси \nС: Mеню кнопки"
                            + "\nП: Открыть настройки прокси \n\nТекущие настройки прокси: "
                            + "\nПорт: "+ port + "\nАдрес: " + address;                                                   
};



// Создать меню для кнопки ................................
var array = [
    { label: "Добавление прокси в контекстом меню", value: 'Proxy.inContextMenu' },
    { label: "Открывать настройки прокси как вкладку", value: 'Proxy.connectionsInTab' },
    { label: "Переключать на режим 'Без прокси' при закрытии браузера ", value: 'Proxy.reset' }   
];

var menuPopup = self.appendChild( document.createElement("menupopup") );
array.forEach(function( m ) {
   var mItem = document.createElement("menuitem");
   mItem.setAttribute("label", m.label);
   mItem.setAttribute('type', 'checkbox');
   mItem.setAttribute('checked', cbu.getPrefs( m.value ) );
   mItem.setAttribute('onclick', 'custombuttons.setPrefs("' + m.value + '", !custombuttons.getPrefs("' + m.value + '"))'); 
   menuPopup.appendChild( mItem );
});
menuPopup.setAttribute("onclick", "event.stopPropagation()");

// добавить стандартное контекстное меню ....
menuPopup.appendChild( document.createElement("menuseparator") );
menuPopup.appendChild( document.createElement("menu") ).setAttribute("label", "Меню кнопки");
var clone = menuPopup.lastChild.appendChild( document.getElementById("custombuttons-contextpopup").cloneNode(true) );
clone.setAttribute("onpopupshowing", "document.popupNode = document.getElementById('" + _id + "')");



// Функция открывает настройки прокси в окне ................................
function openConnections() {
   var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Ci.nsIWindowMediator).getEnumerator(null);
   while( windows.hasMoreElements() ) {
          var win = windows.getNext();
          if ( win.name == 'Proxy') {   
               win.focus();
               return;
               }
   };   
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "Proxy", "centerscreen");   

   // добавить атрибут "prefwindow"
   win.addEventListener("load", function f(e) {
       this.removeEventListener("load", f, true);
       e.target.documentElement.setAttribute("type", "prefwindow");
   }, true);
   
   // закрыть настройки прокси по клику на странице
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c );
      try { win.close() } catch(e) {};
   });
};



// Функция открывает настройки прокси в вкладке ................................
function openConnectionsInTab() {
   var connections = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("chrome://browser/content/preferences/connection.xul") );
         
   // oбработчик ждет пока откроется прокси, удаляет себя и добавляет атрибут
   connections.addEventListener("pageshow", function c(e) {         
      this.removeEventListener( e.type, c );         
      e.originalTarget.documentElement.setAttribute("type", "prefwindow");
   })   
};



// Установливать нужную иконку кнопки при старте баузера или при изменениях в 'about:config' ................................
var  s = "network.proxy.type";
function toggleImage() {
    var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");
    icon.src = ( cbu.getPrefs(s) == 2 )
    ? self.image
    : 'data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAA4GQAAnFmkAHQ5fAAQAKAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAEBAQECAgICAgICAgICAgMBAQEAAAQBJBFQOLQ+nX38ecev/mu6of8gfFvtAyUXewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMLUza7PKd//3S7oP2849X9zuvh/mW4mf4XiV7/AB4QZwAAAAAAAAAAAQEBAQAAAAAZGhgTKSwnLyYqJDErKCUnID8vXgaAUP9BlnH8b7ea/ojHrv+q2sf/a7CT+zGWbf8PakXGAAIAAAEBAQMHBwcbAAAAD2BiXn76/ff/4ebg/Onm4f+DtZ7/A31L/j2Wb/+Fwaj/ls23/7rh0v9+vaT+M5du/xKGWO0DIxIdAAAAAAEBAQEAAAABBgYFEaSmorbP08z239vX/4OwnP4ail3/RJlz/5HHsP/T7+X/ms64/3K2mP40k2r/D3tM7AUiExwhIx8meXt1mXt+eKJ3eXSce353n6esouDMysf/o7eq/kOdeP92uZv/vuPT/9Hs4P/C4tT/eLWa+juWbv8bcEq7AAYBAF1gWn7//////f39/P//////////////////////////lcKx/3i9pf/K7OD/2O/l/7ndzf6Fw6n/VK+I/AsxHj8AAAAAXF5bf+Ln2P+AnU/4fZ1N+4WiV/yKp13+jKlh/5CsZf+GpFj/Zpxh/4C5nf+i0L7+k8ex/1udf+UTOCZFAAAAAAEBAQJfYF5/3uXR/16IIPxciiH/Z5Iv/26YOP9ymz3/cpw+/3OcPf9wlzb/YI80/1mKNPu707X/YmZjiAAAAAAEBAQGAAAAAF9gXoDg5tT/cJU6/HGaPf9/pE3/hqtX/4uvXf+NsF7/iKxZ/4KoU/9+o0r/cpY6+9zjyf9ubm2JAAAAAAMEAwQAAAAAX2BegODm1P94nEX8e6JJ/4quXP+Vt2n/nb1z/6LBef+jwXz/ob96/527d/+NrGP71+HG/2praogAAAAABAQDBAAAAABfYF2A4ObU/4WlVvyPsmP/osB7/7HMj/+81J3/wdik/8DXo/+60pz/tc6X/6G6ffvY4sf/amtqiAAAAAAEBAMEAAAAAF9gXn/e5dL/n7l7/LLMk//B16X/zuG2/9jpwv/b68b/2enE/9Pkvv/Q4bv/uMud+9jhyP9qa2mHAAAAAAQEAwQAAAAAX2Bef97k0v+gt335sceT/LrNnfzC1Kj8ydmx/MzatfzK2bP8xtav/MbVr/ywwpL41+HH/2tsaokAAAAABAQDBAAAAABZW1Z3+fz1/+Dm1Pzj6db/5u3b/+nv3v/r8eD/6vDe/+ft2//k69j/4efT/9ngzPv7//b/ZGdhfwAAAAADBAMEAAAAABcZFRpZW1Z6YGFfgWBiYIBhYmGAYmJhgGJjYoBiY2KAYmJhgGFiYYBgYWCAX2BegF1fWoAbHRkeAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=';
}; 
toggleImage();
gPrefService.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) });



// Переключать на режим 'Без прокси' при закрытии браузера если это разрешено в 'about:config' ................................
var switchOffProxy = {
    observe: function(subject, topic, data) {
       if ( data.toString() == "shutdown" && cbu.getPrefs("Proxy.reset") ) cbu.setPrefs("network.proxy.type", 0); 
    }
};
Services.obs.addObserver( switchOffProxy, "quit-application", false );
addDestructor(function() { Services.obs.addObserver( switchOffProxy, "quit-application", false ) }); 



// Создаем меню для добавление прокси в контекстном меню выделенного текста на странице ................................
(function func() {
  var contextMenu = document.getElementById("contentAreaContextMenu"); 
 
  // создать новый пункт меню
  var menuitem = document.createElement("menuitem");     
  menuitem.setAttribute("label", "Добавить прокси");
  menuitem.setAttribute("class", "menuitem-iconic");
  menuitem.setAttribute("image", self.image );
  addEventListener("command", function(e) { addNewProxy() }, false, menuitem );
 
  // устанавливаем где показывать пункт меню
  addEventListener("popupshowing", function() {
     menuitem.hidden = !cbu.getPrefs("Proxy.inContextMenu") || !gContextMenu.isContentSelected;
  }, false, contextMenu );
  addDestructor(function() { contextMenu.removeChild( menuitem ) });
  contextMenu.appendChild( menuitem ); // как последний пункт меню
 
 
  // добавление прокси
  function addNewProxy( sel, i ) { 
     var selection = document.commandDispatcher.focusedWindow.getSelection().toString();
     var sel = ( sel == undefined ) ? selection : sel.toString();
     sel = sel.replace(/^\s+|\s+$/g, ""); // удалить пробелы, слева и справа от строки
     sel = sel.replace(/\s+/g,":"); // заменить пробелы внутри строки
     
     // если порт ...
     if ( sel.length < 5 && isFinite(sel) ) { 
          sel = sel.replace(/:/g, "");
          sel = +sel;  // порт как число
          var lab = 'порт';
          var pref = 'network.proxy.http_port';
          }
     
     // если адрес ...
     if ( sel.length > 4 && !/:/.test(sel) && sel.split(".").length == 4 ) { 
          var lab = 'адрес';
          var pref = 'network.proxy.http';
          }     
     
     // если адрес и порт ...   
     if ( sel.length > 4 && /:/.test(sel) && sel.split(":").length == 2 && sel.split(".").length == 4 ) {
          var lab = 'адрес и порт';
          var array = sel.split(":"); 
          array.forEach(function(sel, i) { addNewProxy( sel, i ) });         
          }     
     
     Application.prefs.setValue( pref, sel ); // переключить настройки прокси     

     if ( lab == undefined || i !== undefined || i == 0 ) return;
     
     // всплывающая подсказка рядом с выделенным текстом ...     
     function showTooltip() {
        var tooltip = gBrowser.appendChild( document.createElement("tooltip") );
        tooltip.style.cssText = "color: red !important; font-weight: bold !important; font-size: 14px !important; -moz-box-orient: horizontal; text-align: center;";
   
        var image = tooltip.appendChild( document.createElement("image") );
        image.setAttribute("src", self.image );
   
        var label = tooltip.appendChild( document.createElement("label") );
        label.setAttribute("value", "Установлен " + lab + " прокси: " + sel );
   
        var focused = document.commandDispatcher.focusedWindow;
        var selection = focused.getSelection().getRangeAt(0).getBoundingClientRect();
        var posX = focused.mozInnerScreenX + selection.left;
        var posY = focused.mozInnerScreenY + selection.bottom - 5;   

        tooltip.showPopup( gBrowser, posX, posY );
        setTimeout(function() { gBrowser.removeChild( tooltip ) }, 2000 );
     };
     showTooltip();   
  };
   
})();

Отредактировано sonyas75 (20-12-2015 09:48:12)

Отсутствует

 

№919520-12-2015 11:09:07

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

Re: Custom Buttons

sonyas75
Спасибо, но у меня есть такая кнопка, только переключает на ручную установку прокси. А мне нужна ещё кнопка чтобы переключала "Без прокси-Url" и иконка с красной на зелёную переключалась и всё, без всех остальных функций и лишнего кода. Крутил, вертел, не получается. А ещё лучше в эту кнопку добавить, и иконку какую нибудь синюю. Щёлкаешь и она переключает Без прокси-Ручная установка-Url.
Где то раньше была подобная, щёлкаешь и она переключала пункты по порядку.

Отредактировано villa7 (20-12-2015 11:18:30)


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

Отсутствует

 

№919620-12-2015 12:13:58

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 608
UA: Firefox 42.0

Re: Custom Buttons

villa7 пишет

Без прокси-Ручная установка-Url.

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

Выделить код

Код:

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%3EProxy%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAA4GQAAnFmkAHQ5fAAQAKAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAEBAQECAgICAgICAgICAgMBAQEAAAQBJBFQOLQ+nX38ecev/mu6of8gfFvtAyUXewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMLUza7PKd//3S7oP2849X9zuvh/mW4mf4XiV7/AB4QZwAAAAAAAAAAAQEBAQAAAAAZGhgTKSwnLyYqJDErKCUnID8vXgaAUP9BlnH8b7ea/ojHrv+q2sf/a7CT+zGWbf8PakXGAAIAAAEBAQMHBwcbAAAAD2BiXn76/ff/4ebg/Onm4f+DtZ7/A31L/j2Wb/+Fwaj/ls23/7rh0v9+vaT+M5du/xKGWO0DIxIdAAAAAAEBAQEAAAABBgYFEaSmorbP08z239vX/4OwnP4ail3/RJlz/5HHsP/T7+X/ms64/3K2mP40k2r/D3tM7AUiExwhIx8meXt1mXt+eKJ3eXSce353n6esouDMysf/o7eq/kOdeP92uZv/vuPT/9Hs4P/C4tT/eLWa+juWbv8bcEq7AAYBAF1gWn7//////f39/P//////////////////////////lcKx/3i9pf/K7OD/2O/l/7ndzf6Fw6n/VK+I/AsxHj8AAAAAXF5bf+Ln2P+AnU/4fZ1N+4WiV/yKp13+jKlh/5CsZf+GpFj/Zpxh/4C5nf+i0L7+k8ex/1udf+UTOCZFAAAAAAEBAQJfYF5/3uXR/16IIPxciiH/Z5Iv/26YOP9ymz3/cpw+/3OcPf9wlzb/YI80/1mKNPu707X/YmZjiAAAAAAEBAQGAAAAAF9gXoDg5tT/cJU6/HGaPf9/pE3/hqtX/4uvXf+NsF7/iKxZ/4KoU/9+o0r/cpY6+9zjyf9ubm2JAAAAAAMEAwQAAAAAX2BegODm1P94nEX8e6JJ/4quXP+Vt2n/nb1z/6LBef+jwXz/ob96/527d/+NrGP71+HG/2praogAAAAABAQDBAAAAABfYF2A4ObU/4WlVvyPsmP/osB7/7HMj/+81J3/wdik/8DXo/+60pz/tc6X/6G6ffvY4sf/amtqiAAAAAAEBAMEAAAAAF9gXn/e5dL/n7l7/LLMk//B16X/zuG2/9jpwv/b68b/2enE/9Pkvv/Q4bv/uMud+9jhyP9qa2mHAAAAAAQEAwQAAAAAX2Bef97k0v+gt335sceT/LrNnfzC1Kj8ydmx/MzatfzK2bP8xtav/MbVr/ywwpL41+HH/2tsaokAAAAABAQDBAAAAABZW1Z3+fz1/+Dm1Pzj6db/5u3b/+nv3v/r8eD/6vDe/+ft2//k69j/4efT/9ngzPv7//b/ZGdhfwAAAAADBAMEAAAAABcZFRpZW1Z6YGFfgWBiYIBhYmGAYmJhgGJjYoBiY2KAYmJhgGFiYYBgYWCAX2BegF1fWoAbHRkeAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Proxy%20%u043E%u0442%2011.12.2013.%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%20%20%20%20%20%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22network.proxy.type%22%2C%20%28cbu.getPrefs%28%22network.proxy.type%22%29%20%3D%3D%202%20%29%20%3F%200%20%3A%202%20%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20menuPopup.showPopup%28%20self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20cbu.getPrefs%28%22Proxy.connectionsInTab%22%29%20%3F%20openConnectionsInTab%28%29%3A%20openConnections%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043D%u0430%u043B%u0438%u0447%u0438%u0435%20%u0441%u0442%u0440%u043E%u043A%20%u0432%20about%3Aconfig%20%u0438%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20................................%0Aif%20%28%20%21cbu.isPref%28%22Proxy.reset%22%29%20%29%20%7B%20%0A%20%20%20%20%20%5B%22Proxy.reset%22%2C%20%22Proxy.connectionsInTab%22%2C%20%22Proxy.inContextMenu%22%5D.forEach%28function%28%20pref%20%29%20%7B%20cbu.setPrefs%28%20pref%2C%20false%20%29%20%7D%29%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onmouseover%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20var%20address%20%3D%20Application.prefs.getValue%28%22network.proxy.http%22%2C%200%29%3B%0A%20%20%20%20%20var%20port%20%3D%20Application.prefs.getValue%28%22network.proxy.http_port%22%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20this.tooltipText%20%3D%20%22Proxy%20%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0440%u043E%u043A%u0441%u0438%20%5Cn%u0421%3A%20M%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%5Cn%5Cn%u0422%u0435%u043A%u0443%u0449%u0438%u0435%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%3A%20%22%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cn%u041F%u043E%u0440%u0442%3A%20%22+%20port%20+%20%22%5Cn%u0410%u0434%u0440%u0435%u0441%3A%20%22%20+%20address%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Avar%20array%20%3D%20%5B%0A%20%20%20%20%7B%20label%3A%20%22%u0414%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u043C%u0435%u043D%u044E%22%2C%20value%3A%20%27Proxy.inContextMenu%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u043A%u0430%u043A%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%22%2C%20value%3A%20%27Proxy.connectionsInTab%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u043D%u0430%20%u0440%u0435%u0436%u0438%u043C%20%27%u0411%u0435%u0437%20%u043F%u0440%u043E%u043A%u0441%u0438%27%20%u043F%u0440%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0438%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%22%2C%20value%3A%20%27Proxy.reset%27%20%7D%20%20%20%20%0A%5D%3B%0A%0Avar%20menuPopup%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%0Aarray.forEach%28function%28%20m%20%29%20%7B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28%20m.value%20%29%20%29%3B%0A%20%20%20mItem.setAttribute%28%27onclick%27%2C%20%27custombuttons.setPrefs%28%22%27%20+%20m.value%20+%20%27%22%2C%20%21custombuttons.getPrefs%28%22%27%20+%20m.value%20+%20%27%22%29%29%27%29%3B%20%20%0A%20%20%20menuPopup.appendChild%28%20mItem%20%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A//%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20....%0AmenuPopup.appendChild%28%20document.createElement%28%22menuseparator%22%29%20%29%3B%0AmenuPopup.appendChild%28%20document.createElement%28%22menu%22%29%20%29.setAttribute%28%22label%22%2C%20%22%u041C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%29%3B%0Avar%20clone%20%3D%20menuPopup.lastChild.appendChild%28%20document.getElementById%28%22custombuttons-contextpopup%22%29.cloneNode%28true%29%20%29%3B%0Aclone.setAttribute%28%22onpopupshowing%22%2C%20%22document.popupNode%20%3D%20document.getElementById%28%27%22%20+%20_id%20+%20%22%27%29%22%29%3B%0A%0A%0A%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u0432%20%u043E%u043A%u043D%u0435%20................................%0Afunction%20openConnections%28%29%20%7B%0A%20%20%20var%20windows%20%3D%20Cc%5B%27@mozilla.org/appshell/window-mediator%3B1%27%5D.getService%28Ci.nsIWindowMediator%29.getEnumerator%28null%29%3B%0A%20%20%20while%28%20windows.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20windows.getNext%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20win.name%20%3D%3D%20%27Proxy%27%29%20%7B%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20win.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20var%20win%20%3D%20openDialog%28%22chrome%3A//browser/content/preferences/connection.xul%22%2C%20%22Proxy%22%2C%20%22centerscreen%22%29%3B%20%20%20%0A%0A%20%20%20//%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0430%u0442%u0440%u0438%u0431%u0443%u0442%20%22prefwindow%22%0A%20%20%20win.addEventListener%28%22load%22%2C%20function%20f%28e%29%20%7B%0A%20%20%20%20%20%20%20this.removeEventListener%28%22load%22%2C%20f%2C%20true%29%3B%20%0A%20%20%20%20%20%20%20e.target.documentElement.setAttribute%28%22type%22%2C%20%22prefwindow%22%29%3B%0A%20%20%20%7D%2C%20true%29%3B%0A%20%20%20%0A%20%20%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u043F%u043E%20%u043A%u043B%u0438%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%0A%20%20%20gBrowser.addEventListener%28%22click%22%2C%20function%20c%28%29%20%7B%0A%20%20%20%20%20%20this.removeEventListener%28%22click%22%2C%20c%20%29%3B%0A%20%20%20%20%20%20try%20%7B%20win.close%28%29%20%7D%20catch%28e%29%20%7B%7D%3B%20%0A%20%20%20%7D%29%3B%0A%7D%3B%0A%0A%0A%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20................................%0Afunction%20openConnectionsInTab%28%29%20%7B%20%0A%20%20%20var%20connections%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22chrome%3A//browser/content/preferences/connection.xul%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%u043F%u0440%u043E%u043A%u0441%u0438%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0430%u0442%u0440%u0438%u0431%u0443%u0442%0A%20%20%20connections.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20e.originalTarget.documentElement.setAttribute%28%22type%22%2C%20%22prefwindow%22%29%3B%0A%20%20%20%7D%29%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0438%u0432%u0430%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u0432%20%27about%3Aconfig%27%20................................%0Avar%20%20s%20%3D%20%22network.proxy.type%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28%20self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20%20icon.src%20%3D%20%28%20cbu.getPrefs%28s%29%20%3D%3D%200%20%29%0A%20%20%20%20%3F%20self.image%0A%20%20%20%20%3A%20%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAQAAAAAIAAYOQAAWJ2kADh1fAAAEKAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEBAQECAgICAgICAgICAgMBAQEAAAEEJBE4ULQ+fZ38ea/H/muhuv8gW3ztAxclewAAAAsAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAAAAAMLNlO7PH+n/3Sgu/281eP9zuHr/mWZuP4XXon/ABAeZwAAAAAAAAAAAQEBAQAAAAAZGBoTKScsLyYkKjErJSgnIC8/XgZQgP9BcZb8b5q3/oiux/+qx9r/a5Ow+zFtlv8PRWrGAAACAAEBAQMHBwcbAAAAD2BeYn769/3/4eDm/Onh5v+DnrX/A0t9/j1vlv+FqMH/lrfN/7rS4f9+pL3+M26X/xJYhu0DEiMdAAAAAAEBAQEAAAABBgUGEaSiprbPzNP239fb/4OcsP4aXYr/RHOZ/5Gwx//T5e//mrjO/3KYtv40apP/D0x77AUTIhwhHyMmeXV7mXt4fqJ3dHmce3d+n6eirODMx8r/o6q3/kN4nf92m7n/vtPj/9Hg7P/C1OL/eJq1+jtulv8bSnC7AAEGAF1aYH7//////f39/P//////////////////////////lbHC/3ilvf/K4Oz/2OXv/7nN3f6FqcP/VIiv/AseMT8AAAAAXFtef+LY5/+AT534fU2d+4VXovyKXaf+jGGp/5BlrP+GWKT/ZmGc/4Cduf+ivtD+k7HH/1t/neUTJjhFAAAAAAEBAQJfXmB/3tHl/14giPxcIYr/Zy+S/244mP9yPZv/cj6c/3M9nP9wNpf/YDSP/1k0ivu7tdP/YmNmiAAAAAAEBAQGAAAAAF9eYIDg1Ob/cDqV/HE9mv9/TaT/hler/4tdr/+NXrD/iFms/4JTqP9+SqP/cjqW+9zJ4/9ubW6JAAAAAAMDBAQAAAAAX15ggODU5v94RZz8e0mi/4pcrv+Vabf/nXO9/6J5wf+jfMH/oXq//513u/+NY6z718bh/2pqa4gAAAAABAMEBAAAAABfXWCA4NTm/4VWpfyPY7L/onvA/7GPzP+8ndT/waTY/8Cj1/+6nNL/tZfO/6F9uvvYx+L/ampriAAAAAAEAwQEAAAAAF9eYH/e0uX/n3u5/LKTzP/Bpdf/zrbh/9jC6f/bxuv/2cTp/9O+5P/Qu+H/uJ3L+9jI4f9qaWuHAAAAAAQDBAQAAAAAX15gf97S5P+gfbf5sZPH/LqdzfzCqNT8ybHZ/My12vzKs9n8xq/W/Mav1fywksL418fh/2tqbIkAAAAABAMEBAAAAABZVlt3+fX8/+DU5vzj1un/5tvt/+ne7//r4PH/6t7w/+fb7f/k2Ov/4dPn/9nM4Pv79v//ZGFnfwAAAAADAwQEAAAAABcVGRpZVlt6YF9hgWBgYoBhYWKAYmFigGJiY4BiYmOAYmFigGFhYoBgYGGAX15ggF1aX4AbGR0eAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%27%3B%0A%7D%3B%20%20%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28%20s%2C%20toggleImage%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20gPrefService.removeObserver%28%20s%2C%20toggleImage%2C%20false%20%29%20%7D%29%3B%20%0A%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u043D%u0430%20%u0440%u0435%u0436%u0438%u043C%20%27%u0411%u0435%u0437%20%u043F%u0440%u043E%u043A%u0441%u0438%27%20%u043F%u0440%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0438%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043E%20%u0432%20%27about%3Aconfig%27%20................................%0Avar%20switchOffProxy%20%3D%20%7B%0A%20%20%20%20observe%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20if%20%28%20data.toString%28%29%20%3D%3D%20%22shutdown%22%20%26%26%20cbu.getPrefs%28%22Proxy.reset%22%29%20%29%20cbu.setPrefs%28%22network.proxy.type%22%2C%200%29%3B%20%20%0A%20%20%20%20%7D%0A%7D%3B%0AServices.obs.addObserver%28%20switchOffProxy%2C%20%22quit-application%22%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20Services.obs.addObserver%28%20switchOffProxy%2C%20%22quit-application%22%2C%20false%20%29%20%7D%29%3B%20%20%0A%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0435%u043C%20%u043C%u0435%u043D%u044E%20%u0434%u043B%u044F%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u043F%u0440%u043E%u043A%u0441%u0438%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u043C%20%u043C%u0435%u043D%u044E%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20................................%0A%28function%20func%28%29%20%7B%0A%20%20var%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%20%0A%20%20%0A%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%0A%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%20%20%20%0A%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043F%u0440%u043E%u043A%u0441%u0438%22%29%3B%20%0A%20%20menuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20menuitem.setAttribute%28%22image%22%2C%20self.image%20%29%3B%0A%20%20addEventListener%28%22command%22%2C%20function%28e%29%20%7B%20addNewProxy%28%29%20%7D%2C%20false%2C%20menuitem%20%29%3B%0A%20%20%0A%20%20//%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u0435%u043C%20%u0433%u0434%u0435%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%20%0A%20%20addEventListener%28%22popupshowing%22%2C%20function%28%29%20%7B%0A%20%20%20%20%20menuitem.hidden%20%3D%20%21cbu.getPrefs%28%22Proxy.inContextMenu%22%29%20%7C%7C%20%21gContextMenu.isContentSelected%3B%0A%20%20%7D%2C%20false%2C%20contextMenu%20%29%3B%0A%20%20addDestructor%28function%28%29%20%7B%20contextMenu.removeChild%28%20menuitem%20%29%20%7D%29%3B%0A%20%20contextMenu.appendChild%28%20menuitem%20%29%3B%20//%20%u043A%u0430%u043A%20%u043F%u043E%u0441%u043B%u0435%u0434%u043D%u0438%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%0A%20%20%0A%20%20%0A%20%20//%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u043F%u0440%u043E%u043A%u0441%u0438%0A%20%20function%20addNewProxy%28%20sel%2C%20i%20%29%20%7B%20%20%0A%20%20%20%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%20%20%20%20%20var%20sel%20%3D%20%28%20sel%20%3D%3D%20undefined%20%29%20%3F%20selection%20%3A%20sel.toString%28%29%3B%0A%20%20%20%20%20sel%20%3D%20sel.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%22%22%29%3B%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%2C%20%u0441%u043B%u0435%u0432%u0430%20%u0438%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u043E%u0442%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20sel%20%3D%20sel.replace%28/%5Cs+/g%2C%22%3A%22%29%3B%20//%20%u0437%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0432%u043D%u0443%u0442%u0440%u0438%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043F%u043E%u0440%u0442%20...%0A%20%20%20%20%20if%20%28%20sel.length%20%3C%205%20%26%26%20isFinite%28sel%29%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20sel%20%3D%20sel.replace%28/%3A/g%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20sel%20%3D%20+sel%3B%20%20//%20%u043F%u043E%u0440%u0442%20%u043A%u0430%u043A%20%u0447%u0438%u0441%u043B%u043E%0A%20%20%20%20%20%20%20%20%20%20var%20lab%20%3D%20%27%u043F%u043E%u0440%u0442%27%3B%0A%20%20%20%20%20%20%20%20%20%20var%20pref%20%3D%20%27network.proxy.http_port%27%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u0430%u0434%u0440%u0435%u0441%20...%0A%20%20%20%20%20if%20%28%20sel.length%20%3E%204%20%26%26%20%21/%3A/.test%28sel%29%20%26%26%20sel.split%28%22.%22%29.length%20%3D%3D%204%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20lab%20%3D%20%27%u0430%u0434%u0440%u0435%u0441%27%3B%0A%20%20%20%20%20%20%20%20%20%20var%20pref%20%3D%20%27network.proxy.http%27%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u0430%u0434%u0440%u0435%u0441%20%u0438%20%u043F%u043E%u0440%u0442%20...%20%20%20%20%0A%20%20%20%20%20if%20%28%20sel.length%20%3E%204%20%26%26%20/%3A/.test%28sel%29%20%26%26%20sel.split%28%22%3A%22%29.length%20%3D%3D%202%20%26%26%20sel.split%28%22.%22%29.length%20%3D%3D%204%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20lab%20%3D%20%27%u0430%u0434%u0440%u0435%u0441%20%u0438%20%u043F%u043E%u0440%u0442%27%3B%0A%20%20%20%20%20%20%20%20%20%20var%20array%20%3D%20sel.split%28%22%3A%22%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20array.forEach%28function%28sel%2C%20i%29%20%7B%20addNewProxy%28%20sel%2C%20i%20%29%20%7D%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20Application.prefs.setValue%28%20pref%2C%20sel%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u0440%u043E%u043A%u0441%u0438%20%20%20%20%20%0A%0A%20%20%20%20%20if%20%28%20lab%20%3D%3D%20undefined%20%7C%7C%20i%20%21%3D%3D%20undefined%20%7C%7C%20i%20%3D%3D%200%20%29%20return%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0440%u044F%u0434%u043E%u043C%20%u0441%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20...%20%20%20%20%20%0A%20%20%20%20%20function%20showTooltip%28%29%20%7B%0A%20%20%20%20%20%20%20%20var%20tooltip%20%3D%20gBrowser.appendChild%28%20document.createElement%28%22tooltip%22%29%20%29%3B%0A%20%20%20%20%20%20%20%20tooltip.style.cssText%20%3D%20%22color%3A%20red%20%21important%3B%20font-weight%3A%20bold%20%21important%3B%20font-size%3A%2014px%20%21important%3B%20-moz-box-orient%3A%20horizontal%3B%20text-align%3A%20center%3B%22%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%20var%20image%20%3D%20tooltip.appendChild%28%20document.createElement%28%22image%22%29%20%29%3B%0A%20%20%20%20%20%20%20%20image.setAttribute%28%22src%22%2C%20self.image%20%29%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%20var%20label%20%3D%20tooltip.appendChild%28%20document.createElement%28%22label%22%29%20%29%3B%0A%20%20%20%20%20%20%20%20label.setAttribute%28%22value%22%2C%20%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%20%22%20+%20lab%20+%20%22%20%u043F%u0440%u043E%u043A%u0441%u0438%3A%20%22%20+%20sel%20%29%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20focused%20%3D%20document.commandDispatcher.focusedWindow%3B%0A%20%20%20%20%20%20%20%20var%20selection%20%3D%20focused.getSelection%28%29.getRangeAt%280%29.getBoundingClientRect%28%29%3B%0A%20%20%20%20%20%20%20%20var%20posX%20%3D%20focused.mozInnerScreenX%20+%20selection.left%3B%0A%20%20%20%20%20%20%20%20var%20posY%20%3D%20focused.mozInnerScreenY%20+%20selection.bottom%20-%205%3B%20%20%20%0A%0A%20%20%20%20%20%20%20%20tooltip.showPopup%28%20gBrowser%2C%20posX%2C%20posY%20%29%3B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20gBrowser.removeChild%28%20tooltip%20%29%20%7D%2C%202000%20%29%3B%0A%20%20%20%20%20%7D%3B%0A%20%20%20%20%20showTooltip%28%29%3B%20%20%20%20%0A%20%20%7D%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0AApplication.prefs.setValue%28%27network.proxy.autoconfig_url%27%2C%20%22http%3A//antizapret.prostovpn.org/proxy.pac%22%29%3B%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

Отсутствует

 

№919720-12-2015 12:41:01

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

Re: Custom Buttons

Ultima2m
Спасибо.


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

Отсутствует

 

№919820-12-2015 14:40:47

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 46.0

Re: Custom Buttons

villa7 пишет

Куда подевались кнопки переключения прокси, не нашёл в готовых, мне нужна кнопка переключающая на Url и обратно.

[CB]Proxy | Форум Mozilla Россия

Отсутствует

 

№919921-12-2015 15:37:19

ma3ca
Участник
 
Группа: Members
Зарегистрирован: 15-02-2009
Сообщений: 54
UA: Firefox 43.0

Re: Custom Buttons

Подскажите, плз, интересует 2 вопроса:

1. У меня стоит кнопка поиска по странице

Выделить код

Код:

gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
setTimeout(function() { gFindBar._find() }, 10);

Но, после последнего обновления лисы, "Учесть регистр" стал выделяться по умолчанию.
Как это исправить? Чтобы по умолчанию регистр не учитывался?

2. Есть ли кнопка, которая показывает курс цб евро и бакса?

Отсутствует

 

№920022-12-2015 03:19:11

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: Custom Buttons

Подскажите, есть ли в природе код  на кнопку "новая личность" для браузера Тор?

скрытый текст
25Fga.png

Если есть, то где её найти? И можно ли как-то самому написать код на кнопку, если ни разу не писал подобных кодов для кнопок? Как вообще эти коды пишутся? Кто-нибудь в курсе дела?

Отредактировано dvitkovs (22-12-2015 03:36:38)

Отсутствует

 

Board footer

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