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

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

№135108-06-2016 08:40:38

1fesFFFF
Участник
 
Группа: Members
Зарегистрирован: 22-01-2010
Сообщений: 252
UA: Firefox 47.0

Re: Обсуждение кнопок CB

bunda1
Здравствуйте!
На 47 FF сломалась кнопка, там несколько функций в одной.
Из этого зоопарка совсем не работает "restart", пункт которого в меню "Файл" находится.
Ещё есть "масштаб", который в адресной строке. Я меняю его скроллингом мыши, сейчас он меняется, но значение масштаба отображается всегда 100%.

Весь код только в поле "инициализация".

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

Выделить код

Код:

// Context Search, от 29.01.2014. ................................
(function () {
   var searchService = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); 

   var searchSelect = document.getElementById('context-searchselect');  
   searchSelect.collapsed = false; // удалить стандартный пункт меню для поиска

   
   // Создать новый пункт меню для поиска ....
   var contextMenu = document.getElementById("contentAreaContextMenu");
   var menu = contextMenu.insertBefore( document.createElement('menu'), searchSelect ); // над каким пунктом меню показывать
   menu.setAttribute("class", "menu-iconic");
   
   // устанавливать иконку, название и поисковик для нового пункта меню
   function setMenu() {  
      menu.engine = searchService.currentEngine;
      menu.setAttribute("label", "Искать в...");
         };
   setMenu();   
 
   // наблюдатель за стандартным пунктом меню 'Копировать' прячет меню поиска
   var copy = document.getElementById('context-copy');  
   var setHiddenMenu = new MutationObserver(function() {
          menu.hidden = copy.hidden || copy.disabled;          
   });
   setHiddenMenu.observe( copy, { attributes: true, attributeFilter: ["hidden", "disabled"] } );
   
   
   // Создать подменю с поисковиками .... 
   var menuPopup = menu.appendChild( document.createElement("menupopup") ); 
   menuPopup.setAttribute('style', 'overflow: scroll'); 
    
   // создать пункты в подменю
   function setItemsToMenuPopup(e) {
      menuPopup.textContent = "";      

      var engines = searchService.getVisibleEngines({});
      engines.forEach(function( engine ) {
         var mItem = document.createElement("menuitem");
         mItem.setAttribute("label", engine.name );
         mItem.setAttribute("class", "menuitem-iconic");
         mItem.setAttribute("src", engine.iconURI.spec );
         mItem.engine = engine;
         menuPopup.appendChild( mItem );
      });

   };  
   setItemsToMenuPopup();
   
   
   // Установить действие для клика на меню и подменю ....
   menu.setAttribute("onmouseup", "\
      var background = ( event.button == 0 ) ? false : true;\
      var clip = gClipboard.read();\
      goDoCommand('cmd_copy');\
      setTimeout(function() {\
         document.getElementById('contentAreaContextMenu').hidePopup();\
         var submission = event.target.engine.getSubmission( gClipboard.read(), null );\
         gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, background, false );\
         gClipboard.write( clip );\
      }, 0);\
   ");      
      
   
   // Наблюдатель за изменениями в поисковиках пересоздаёт меню и подменю .... 
   var getEngineModified = {
      observe: function(subject, topic, data) { 
         if ( /changed|removed|current/.test( data ) ) { setMenu(); setItemsToMenuPopup() };             
      }
   };
   Services.obs.addObserver( getEngineModified, "browser-search-engine-modified", false );   
   
   
   // Удалять наблюдатели и меню, показать стандартный пункт ....
   addDestructor(function() {
      contextMenu.removeChild( menu );           
      setHiddenMenu.disconnect();
      Services.obs.removeObserver( getEngineModified, "browser-search-engine-modified", false );
      
      searchSelect.collapsed = false; 
   });   
})();

// Добавить новый пункт "Перезапуск" в главном меню .....................................................
(function() {
    // блокировать дублирование пункта при открытии настройки панелей
    if ( document.getElementById("restart_firefox") ) return;
    
    var menuItem = document.createElement("menuitem");
    menuItem.setAttribute("id", "restart_firefox");               
    menuItem.setAttribute("label", "Restart");
    menuItem.setAttribute("oncommand", "Application.restart()");    
    
    var QuitItem = document.getElementById("menu_FileQuitItem"); // в меню 'Файл'
    QuitItem.parentNode.insertBefore( menuItem, QuitItem );
    
    var appmenuQuit = document.getElementById("appmenu_quit") || document.getElementById("appmenu-quit"); // в меню kнопки "Firefox"
    if ( appmenuQuit ) appmenuQuit.parentNode.insertBefore( menuItem.cloneNode(true), appmenuQuit );
})();

// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений ...........................
(function() {
   if ( document.getElementById("image-search") ) return; 
               
   var menuItem = document.createElement("menuitem");
   menuItem.id = "image-search";
   menuItem.setAttribute("label", "Поиск изображения в google");
   menuItem.setAttribute("oncommand", "getBrowser().selectedTab = getBrowser().addTab('http://www.google.com/searchbyimage?image_url=' + encodeURIComponent( gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL ) )");
   document.getElementById("context-viewimage").parentNode.insertBefore( menuItem, document.getElementById("context-viewimage") );
   
   document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() {
     menuItem.hidden = !gContextMenu.onImage; 
     }, false);
})();

// Кнопка для управления масштабом страницы в адресной строке 2, от 14.12.2014. ................................
(function f() {   
   // Создать в адресной строке кнопку масштаба ....
   var zoomButton = document.createElement("statusbarpanel");
   zoomButton.setAttribute("context", "event.stopPropagation()");
   var urlbarIcons = document.getElementById("urlbar-icons");
   urlbarIcons.insertBefore( zoomButton, urlbarIcons.lastChild ); // перед последней кнопкой адресной строки
   addDestructor(function() { urlbarIcons.removeChild( zoomButton ) });
   
   updateZoomButton(); 
   zoomButton.id = "zoomButton";
   zoomButton.style.cssText = "-moz-appearance: none; border: 0; margin-right: -5px;"; // Css стиль для кнопки масштаба
   zoomButton.tooltipText = "Л: Сбросить масштаб на 100%\nС: Единый масштаб для всех страниц \nП: Открыть меню управления масштабом ";

   
   // Отслеживать клики на кнопке масштаба ....           
   addEventListener("click", function(e) {
      // сбросить масштаб               
      if ( e.button == 0 && e.target.localName !== "menuitem" ) FullZoom.reset();
       
      // единый масштаб для всех страниц
      if ( e.button == 1 ) {                 
           cbu.isPref("CB.zoom.allEvenly", false );
           cbu.setPrefs("CB.zoom.allEvenly", !cbu.getPrefs("CB.zoom.allEvenly") );
           cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) );
                
           updateZoomButton();
           }
      
      // открыть меню управления масштабом  
      if ( e.button == 2 ) {            
           
           zoomButton.textContent = ""; // удалить старое меню
           
           // создать новое меню управления масштабом
           var zoom = zoomButton.label.replace('%','');
           var menu = zoomButton.appendChild( document.createElement("menupopup") );
           cbu.getPrefs("toolkit.zoomManager.zoomValues").split(',').forEach(function( val ) {
              var mItem = menu.appendChild( document.createElement("menuitem") ); 
              var str = Math.round(val*100);      
              mItem.setAttribute("value", val );
              mItem.setAttribute("label", str );
              mItem.setAttribute('type', 'checkbox');
              mItem.setAttribute('checked', str == zoom );              
              mItem.setAttribute("oncommand", "this.parentNode.setZoom(event)"); 
           });
           menu.setZoom = function(e) {
              gBrowser.markupDocumentViewer[ZoomManager.useFullZoom ? 'fullZoom' : 'textZoom'] = e.target.value;
              updateZoomButton();
           };
           
           menu.appendChild( document.createElement("menuseparator") ); // добавить разделитель 
           
           // добавить к новому меню стандартное меню масштаба
           var popup = document.getElementById("viewFullZoomMenu").lastChild;
           [...popup.childNodes].forEach(function( mItem ) {
               popup.lastChild.setAttribute('checked', !ZoomManager.useFullZoom );
               menu.appendChild( mItem.cloneNode(true) );
           });
           
           menu.showPopup( zoomButton, -1, -1, "popup", "bottomleft", "topleft"); // открыть меню           
           };
               
   }, false, zoomButton );

         
   // Менять масштаб колесиком мыши на кнопке масштаба ....
   addEventListener("DOMMouseScroll", function(e) {
      e.detail > 0 ? FullZoom.reduce() : FullZoom.enlarge();
   }, false, zoomButton );
           
 
   // Следим за изменением масштаба и запускаем обновление кнопки ....
   var str = "updateZoomButton(); $&";
   var handleEvent = parseInt(Application.version) > 33 ? FullZoom.handleEvent : FullZoom._handleMouseScrolled;
   var array = [FullZoom.reset, FullZoom.reduce, FullZoom.enlarge, ZoomManager.toggleZoom, handleEvent];
   array.forEach(function(func) { eval( (func.toString().match(/function ([^(]*)\(/)[1] + " = " + func.toString().replace(/}$/, str)).replace('_', '.') ) }); 
   addDestructor(function() { 
      array.forEach(function(func) { eval( (func.toString().match(/function ([^(]*)\(/)[1] + " = " + func.toString()).replace('_', '.') ) });  
   });
   
   
   // Показывать текущий масштаб страницы на кнопке и изменять цвет и шрифт отображения масштаба ....
   function updateZoomButton(e) {
      zoomButton.label = Math.round(ZoomManager.zoom*100) + "%"; 
      setTimeout(function() {  
         zoomButton.style.fontWeight = ZoomManager.useFullZoom ? '' : 'bold';
         zoomButton.style.color = cbu.getPrefs("CB.zoom.allEvenly") ? "red" : "";
      }, 5);
      
      // запомнить текущий масштаб в 'about:config'
      if ( e == undefined ) { 
           try { window.clearTimeout( f.timeout ) } catch(e) {};
           f.timeout = window.setTimeout(function() {
              cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) )  
           }, 250 );
           }     
   };
     
     
   // Устанавливать единый масштаб для всех страниц если это разрешено в 'about:config' ....
   addEventListener("TabAttrModified", function(e) { 
      if ( e.target.linkedBrowser.currentURI.spec !== gBrowser.currentURI.spec ) return;
             
      if ( cbu.getPrefs("CB.zoom.allEvenly") && content.location.protocol.startsWith("http") ) {
           var value = cbu.getPrefs("CB.zoom.Percent");
           if ( ZoomManager.zoom.toFixed(2) == value ) return;

           setTimeout(function() {  
              gBrowser.markupDocumentViewer[ZoomManager.useFullZoom ? 'fullZoom' : 'textZoom'] = value;
              updateZoomButton(e);   
           }, 0) 
           }      
      else 
           updateZoomButton(e);
                 
   }, true, gBrowser.tabContainer );   
})();

Отсутствует

 

№135208-06-2016 09:41:47

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Обсуждение кнопок CB

1fesFFFF

скрытый текст
Замените

Выделить код

Код:

menuItem.setAttribute("oncommand", "Application.restart()");

на:

Выделить код

Код:

menuItem.setAttribute("oncommand", "Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart)");

и

Выделить код

Код:

var handleEvent = parseInt(Application.version) > 33 ? FullZoom.handleEvent : FullZoom._handleMouseScrolled;

на

Выделить код

Код:

var handleEvent = parseInt(Services.appinfo.platformVersion) > 33 ? FullZoom.handleEvent : FullZoom._handleMouseScrolled;

Отредактировано turbot (08-06-2016 09:44:30)

Отсутствует

 

№135308-06-2016 12:37:04

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 47.0

Re: Обсуждение кнопок CB

в 47 [firefox] сломалась About: Menu :| Отремонтить как?

Отсутствует

 

№135408-06-2016 12:52:59

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

Re: Обсуждение кнопок CB

Отсутствует

 

№135508-06-2016 13:15:50

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 47.0

Re: Обсуждение кнопок CB

voqabuhe пишет

Custom Buttons • View topic - About: Menus Mod

вот она то и отвалилась в 47 [firefox]

Добавлено 08-06-2016 13:20:06
нашёл то что работает №111

Отредактировано oleg953 (08-06-2016 13:20:06)

Отсутствует

 

№135608-06-2016 14:14:42

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

Re: Обсуждение кнопок CB

oleg953 пишет

вот она то и отвалилась в 47

Странно, у меня работает. Возможно мне её уже правили, но не помню. Попробуй, если ещё нужна

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

Выделить код

Код:

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%3EAbout%3A%20Menu%20Mod%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIUlEQVQ4y42Tv09TcRTFP6+vQE0Ngs4maoK6IVipiAIuDkLYEaKTq4mzf4Kr0cTJWY0rRAmUaDSBmEBCdCFYopQWkKoU+8r73nsdXn/QxIGbfLdzzzk593w9M+PB65U5PIY5yhiZ55OpmwBBEBAHEHHDd69eaMKpgXkgTjHA80DVePl5tUkoDmAqAJTDCAwRWAE1QzR6vu/VsU0EKlJ111BXqC/WSPAa2GYHEkYEFpEchI7puQyLS0sY0NvdzdDAdVqI17G1iUUZSFU5UpqanWVlPcfo6BgjI2N8yW7ybn4eUcXMmHz6tvO/GaiBqLKa3+HW4DV6us4SiqIG7xcW+bpTolIu4cfb1iaeTD0EXsSiDByihlMlECPZfpLcZoFsMeDbbpkf+TzJ9k52y5H98cHeDhX3rBGiCk6Vrb0KYsaJ48dYXF6msL2NmpHN5Rjq78dVbW/vO1QlcShERyCKUyOTmSG7WeD0mXNsfF8Hg3TqChfPd7GytQ9AsRxi4hoZiAhBqMzMTLO6tkaqL83AlcvEYjcQhb3A8aeiTenXgo8cOGGnWCSXz9GXTpO61MPG7wpS64IZyRa/udFOmq+QTLZzb+IO+K0USmG0CEj1tE6toR46zLR0iECpiBJ6rVQOjESLX6+yqNbbWJtPCx9/+W2J+wCemTH++NUHVRk4ymf0Yv5CLBa7/ebRxM8gCCKCRCJxCugA/CNw/AX2o98clP8BXEloo/iyk7kAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%0Avar%20%7Bclasses%3A%20Cc%2C%20interfaces%3A%20Ci%2C%20utils%3A%20Cu%7D%20%3D%20Components%3B%0Avar%20menu%20%3D%20document.createElement%28%22menupopup%22%29%3B%0Amenu.setAttribute%28%22context%22%2C%20%22inspect%28event%29%22%29%3B%0Amenu.setAttribute%28%22oncontextmenu%22%2C%20%22toolbar-context-menu%22%29%3B%0Amenu.setAttribute%28%22onpopupshowing%22%2C%20%22populate%28this%29%22%29%3B%0Amenu.setAttribute%28%22oncommand%22%2C%20%22getTab%28event.target.label%29%22%29%3B%0Amenu.setAttribute%28%22onclick%22%2C%20%22middleClickHandler%28event%29%22%29%3B%0Amenu.id%20%3D%20%22aboutMenu%22%3B%0A%0Athis.appendChild%28menu%29%3B%0A%0Amenu.populate%20%3D%20populate.bind%28%29%3B%0Amenu.style.MozAppearance%20%3D%20%22none%22%3B%0Amenu.style.border%20%3D%20%222px%20outset%20%23999%22%3B%0Amenu.style.listStyleImage%20%3D%20%22none%22%3B%0A%0Afunction%20populate%28aNode%29%20%7B%0A%20%20while%28aNode.lastChild%29%20aNode.removeChild%28aNode.lastChild%29%3B%0A%20%20var%20protocols%20%3D%20%5B%5D%3B%0A%20%20var%20ios%20%3D%20Cc%5B%22@mozilla.org/network/io-service%3B1%22%5D.getService%28Ci.nsIIOService%29%3B%0A%20%20for%28var%20cid%20in%20Cc%29%20%7B%0A%20%20%20%20let%20res%20%3D%20cid.match%28/@mozilla.org%5C/network%5C/protocol%5C/about%3B1%5C%3Fwhat%5C%3D%28.*%29%24/%29%3B%0A%20%20%20%20if%28res%29%20%7B%0A%20%20%20%20%20%20let%20aboutType%20%3D%20res%5B1%5D%3B%0A%20%20%20%20%20%20let%20contract%20%3D%20%22@mozilla.org/network/protocol/about%3B1%3Fwhat%3D%22%20+%20aboutType%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20let%20am%20%3D%20Cc%5Bcontract%5D.getService%28Ci.nsIAboutModule%29%3B%0A%20%20%20%20%20%20%20%20let%20uri%20%3D%20ios.newURI%28%22about%3A%22%20+%20aboutType%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20let%20flags%20%3D%20am.getURIFlags%28uri%29%3B%0A%20%20%20%20%20%20%20%20if%28%21%28flags%20%26%20Ci.nsIAboutModule.HIDE_FROM_ABOUTABOUT%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20protocols.push%28aboutType%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%7D%20%7D%0A%20%20var%20newGecko%20%3D%20parseInt%28navigator.userAgent.match%28/%5Cd+.%5Cd+%28%3F%3D%5C%29%29/%29%29%20%3E%3D%204%3B%0A%20%20if%28newGecko%20%26%26%20%28protocols.length%20%3E%2010%29%29%20%7B%0A%20%20%20%20var%20hbox%20%20%3D%20aNode.appendChild%28document.createElement%28%22hbox%22%29%29%3B%0A%20%20%20%20var%20vbox1%20%3D%20hbox.appendChild%28document.createElement%28%22vbox%22%29%29%3B%0A%20%20%20%20var%20vbox2%20%3D%20hbox.appendChild%28document.createElement%28%22vbox%22%29%29%3B%0A%20%20%20%20protocols.sort%28%29.forEach%28function%28aProtocol%29%20%7B%0A%20%20%20%20%20%20let%20vbox%20%3D%20%28aProtocol%20%3C%20protocols%5BparseInt%28Math.round%28protocols.length%20/%202%29%29%5D%29%20%3F%20vbox1%20%3A%20vbox2%3B%0A%20%20%20%20%20%20addMenuItem%28vbox%2C%20%22about%3A%22%20+%20aProtocol%29%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20protocols.sort%28%29.forEach%28function%28aProtocol%29%20%7BaddMenuItem%28aNode%2C%20%22about%3A%22%20+%20aProtocol%29%3B%7D%29%3B%0A%7D%20%7D%0A%0Afunction%20addMenuItem%28aNode%2C%20aLabel%29%20%7B%0A%20%20var%20cb%20%3D%20document.createElement%28%22checkbox%22%29%3B%0A%20%20cb.setAttribute%28%22label%22%2C%20aLabel%29%3B%0A%20%20cb.setAttribute%28%22class%22%2C%20%22about-menuitem%22%29%3B%0A%20%20aNode.appendChild%28cb%29%3B%0A%7D%0A%0Amenu.inspect%20%3D%20function%20inspect%28aEvent%29%20%7B%0A%20%20if%28%21%22inspectDOMNode%22%20in%20window%29%20return%3B%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20inspectDOMNode%28aEvent.target%29%3B%0A%20%20closeMenus%28aEvent.target%29%3B%0A%7D%0A%0Avar%20thisId%20%3D%20this.id%3B%0A%0Amenu.middleClickHandler%20%3D%20function%20middleClickHandler%28aEvent%29%20%7B%0A%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20var%20thisBtn%20%3D%20document.getElementById%28thisId%29%3B%20%0A%20%20%20%20thisBtn.firstChild.openPopup%28%29%3B%0A%20%20%20%20thisBtn.firstChild.autoPosition%20%3D%20false%3B%0A%20%20%7D%2C%2010%29%3B%0A%20%20if%28aEvent.button%20%21%3D%201%29%20return%3B%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28aEvent.target.label%29%3B%0A%20%20closeMenus%28aEvent.target%29%3B%0A%7D%0A%0Athis.type%20%3D%20%22menu%22%3B%0Athis.label%20%3D%20this.tooltipText%20%3D%20%22About%3A%20Pages%22%3B%0A//%20this.boxObject.lastChild.collapsed%20%3D%20true%3B%0A%0Amenu.getTab%20%3D%20function%20getTab%28aURI%29%20%7B%0A%20%20function%20switchIfURIInWindow%28aWindow%29%20%7B%0A%20%20%20%20var%20browsers%20%3D%20aWindow.gBrowser.browsers%3B%0A%20%20%20%20for%28let%20i%20%3D%200%3B%20i%20%3C%20browsers.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20let%20browser%20%3D%20browsers%5Bi%5D%3B%0A%20%20%20%20%20%20if%28browser.currentURI.equals%28aURI%29%29%20%7B%0A%20%20%20%20%20%20%20%20aWindow.focus%28%29%3B%0A%20%20%20%20%20%20%20%20aWindow.gBrowser.tabContainer.selectedIndex%20%3D%20i%3B%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%7D%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%0A%20%20if%28%21%28aURI%20instanceof%20Ci.nsIURI%29%29%20aURI%20%3D%20makeURI%28aURI%2C%20null%2C%20null%29%3B%0A%20%20var%20isBrowserWindow%20%3D%20%21%21window.gBrowser%3B%0A%20%20if%28isBrowserWindow%20%26%26%20switchIfURIInWindow%28window%29%29%20return%20true%3B%0A%20%20var%20wm%20%3D%20Cc%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D.getService%28Ci.nsIWindowMediator%29%3B%0A%20%20var%20winEnum%20%3D%20wm.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%20%20while%28winEnum.hasMoreElements%28%29%29%20%7B%0A%20%20%20%20let%20browserWin%20%3D%20winEnum.getNext%28%29%3B%0A%20%20%20%20if%28browserWin.closed%20%7C%7C%20browserWin%20%3D%3D%20window%29%20continue%3B%0A%20%20%20%20if%28switchIfURIInWindow%28browserWin%29%29%20return%20true%3B%0A%20%20%7D%0A%20%20gBrowser.loadOneTab%28aURI.spec%2C%20%7BinBackground%3A%20true%7D%29%3B%0A%20%20return%20false%3B%0A%7D%0A%0Avar%20Cc%20%3D%20Components.classes%2C%20Ci%20%3D%20Components.interfaces%3B%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27%20+%20encodeURIComponent%28this.Help%29%29%3B%0Avar%20sss%20%3D%20Cc%5B%27@mozilla.org/content/style-sheet-service%3B1%27%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Aif%28%21sss.sheetRegistered%28uri%2C%20sss.USER_SHEET%29%29%20sss.loadAndRegisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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/*http%3A//custombuttons.sourceforge.net/forum/viewtopic.php%3Ff%3D4%26t%3D367%26sid%3D8ee7ae46e4cd942e759e413f9ac6666a*/%0A/*%20Custom%20Buttons%20%u2022%20View%20topic%20-%20About%20Menu%20http%3A//custombuttons.sourceforge.net/forum/viewtopic.php%3Ff%3D4%26t%3D276%26sid%3D8f724b7464cf9c69d86e3370407b5ed9%26start%3D20%23p3807*/%0Adata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIUlEQVQ4y42Tv09TcRTFP6+vQE0Ngs4maoK6IVipiAIuDkLYEaKTq4mzf4Kr0cTJWY0rRAmUaDSBmEBCdCFYopQWkKoU+8r73nsdXn/QxIGbfLdzzzk593w9M+PB65U5PIY5yhiZ55OpmwBBEBAHEHHDd69eaMKpgXkgTjHA80DVePl5tUkoDmAqAJTDCAwRWAE1QzR6vu/VsU0EKlJ111BXqC/WSPAa2GYHEkYEFpEchI7puQyLS0sY0NvdzdDAdVqI17G1iUUZSFU5UpqanWVlPcfo6BgjI2N8yW7ybn4eUcXMmHz6tvO/GaiBqLKa3+HW4DV6us4SiqIG7xcW+bpTolIu4cfb1iaeTD0EXsSiDByihlMlECPZfpLcZoFsMeDbbpkf+TzJ9k52y5H98cHeDhX3rBGiCk6Vrb0KYsaJ48dYXF6msL2NmpHN5Rjq78dVbW/vO1QlcShERyCKUyOTmSG7WeD0mXNsfF8Hg3TqChfPd7GytQ9AsRxi4hoZiAhBqMzMTLO6tkaqL83AlcvEYjcQhb3A8aeiTenXgo8cOGGnWCSXz9GXTpO61MPG7wpS64IZyRa/udFOmq+QTLZzb+IO+K0USmG0CEj1tE6toR46zLR0iECpiBJ6rVQOjESLX6+yqNbbWJtPCx9/+W2J+wCemTH++NUHVRk4ymf0Yv5CLBa7/ebRxM8gCCKCRCJxCugA/CNw/AX2o98clP8BXEloo/iyk7kAAAAASUVORK5CYII%3D%0A%0Adata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACK0lEQVQ4y6WTwUvUURDHP++3b3WxkjSIiCApKaLCFNMyKSu6CQQEnQxPQX+Nx6BTnaJunQrBFcPcJMQuEQVIqrirRpqa7v5+b2YC3F1dEQh6MDDMvPm8N2++z5kZ/7P8w2fjAIMakqeqktmbjKJUMfLpJ8DzV497Dwa4lG/SEIYG73RlCn+kJnniUCrzYmx6KPL+DbB6EMANvv724UgmfbHeR/V72zHcrl+OO8C5nXgcpLRRCl+8Suh5cKkFB5irFICxayJW9V0ZppB5OTXT41UCDojFSLRyLwghMDw6yqfP0xjQ0dZOX+8tcBEAvi5CJeBVYpwrn+bAAaLGu+wIX2fz9Pffx8wYGc+RSJbbfXcBIFFUYrzECQao7RRWep7Jr3Dv5g3azp9FAYsc73OTxOU9JVNMFK8SanpVIKjR0NhMYWWZ4ydPk6iymF+mobGZzbh2Ul5DTBBloySslQQtg44cbmBiapr5/AqKMbewQM/1HrarD1UFJGyLsh4Lv2MBg49jwywUljjVcob8/Cxm0Hm1m9bWc2yK7QOosJkYsRqJKLnsW+Z+zNDeeY3urk5SUYRgrG8LP4tKyke1ABOhmAjFoPxaXWOpsMiVzm4ut3cwu5YggJoRxEhHjrr9UlYJFBPBOTjWfJRHAwO4dD3LGwEfOVKAAinARY5QndSOKr2DyexE7oL3vk5USaci4qCwR5UABmBGZQaqmpjZdwc0AQ1lc//4iw3YArb+Ak3uO3iDCbpzAAAAAElFTkSuQmCC%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

oleg953 пишет

нашёл то что работает №111

Там слишком мало эбаутов :)

Отсутствует

 

№135708-06-2016 15:13:59

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 47.0

Re: Обсуждение кнопок CB

voqabuhe пишет

мне её уже правили

скорее всего... всё заработало :beer:

Отсутствует

 

№135808-06-2016 16:31:23

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

Re: Обсуждение кнопок CB

Продублирую тут свой пост, может кто решил вопрос.

mssign пишет

В 47 не работает кнопка  Открыть страницу или выделенную ссылку в другом браузере

Поддерживаю. Помогите кто может.
Еще у меня отвалились кнопки:
Переключить стиль

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0426%u0432%u0435%u0442%20%u0441%u0441%u044B%u043B%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACx0lEQVQ4jWNgoCYQnXqVJ23Vw521e56/m3rs9d/+Qy9/1u989j5p0YPTEgXnFYgyRKHrhkfd8dc3jz399v/o42//HWfeXSWZdVaTgYGBkRj9jHp9NyYuuvL+o9WU24tytz69aNl5bZF03Elh4myvu5S44cbnX9q1l/qlM89aVO54ftu1/+YWqYzz1prNN+eY9dw7aNJxd7dJy53dpi03D2qUXlsG1yxTel61eMfzqzNOvXsjkXzaTDz2qM6UA69e+02+dUA6/ZyzcsXNyT5zH3/O3vjif+aaF/91Sq6vE4s9XwY3wKjlysxN1z/9mXvy3YcJ+1++mHHw9dsDNz/9j51154ygy245/fqb6/3nPfrn1HvnbuKyJ//Fo841M4SuYmNgcNjPIp1xOnbJmbeffafd2SsefDhSLOBQsKjvgbwpu5+/TZ5957JkwpmMmCVP/9u03rksFnXWPWLu4//Sked6IU6PO6GXvfrRpYkHXr4S9TtoCHORiMd29aTpdy5mzLr3wHXS/feu/XdfioWdthYLORUUOfPhf9XE8xD/t+989n3awVf/m7c++5I0/fY2BgYGBhG3ncZBPTdOLjv05n/0pHv/E5c8+S8ScaaWgYGBQTDopHf41Pv/tZPObyEYK2LRF2Ki5z/+n7zoyf+YOQ//+/bd+x8++d7/lLkP/2vGnd/C67wHd/QKR502s6q/cdmr9+432ahz04UCThQI+x3LUYs8vy555oP/unHnDvI67NfAaYBG9sU1CfMe/RcNOtHM4LuZCybO734o2KXixgfdqHMH+F32KGFoFAk9aywScqbYre3OB4/WO1+FfE8EMxjPZGVgYGDgdzuoKOB2sMGt8upX25yLj3kd9sdjGODeeeeTb9/d/749d/77dNz5b5h28RiD5SpOBgYGBrPkixc9q2/886q58d+r+sZ/9/KrPwkGJCEAAGPyWBBZxhFHAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u0441%u0442%u0438%u043B%u044C%20..........%0Athis._handleClick%20%3D%20function%28%29%20setStyleForPages%28void%28run.value%20%3D%20%21run.value%29%29%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20about%3Aconfig%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20..........%0Avar%20s%20%3D%20%22CB%22%20+%20_id.slice%2820%29%20+%20%22.setStyleForPage%22%3B%0Acbu.isPref%28s%2C%20false%29%3B%0Avar%20previousUri%20%3D%20%22CB%22%20+%20_id.slice%2820%29%20+%20%22.previousUri%22%3B%0A%0A%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u0434%u043B%u044F%20%u0432%u043A%u043B%u044E%u0447%u0435%u043D%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%20..........%0Avar%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0Avar%20styleImage%20%3D%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8ElEQVQ4jY2RaSzbcRjHf3S2N9sLU1UqC1lshFmMycZeOFpsUxbX3HHNimxZmGsZ3eIYosx9DEsakcWMTRwVXbQ2Vtrq3O3866q7rjl3WJ+9ECIxme/7z+f5PvkidCDqBYOnQ6snWhLYs8sFnfI/2e3zP+ktMytBzHE+8ZFIBx0nOhlih8Qvcknn9BZ0yLbAukRarRkuNEAIKR2HVzLOEucwB1a+W+SPMB80TvdeTx9ikvy71I53PbEv8L14/ZdhQl82KUx4LZ41O0LJljRo0USWBkmSMvPMUa5ZmrTVLBlrvZos4epHD1Xtw9rRIr0o1uxgcffyIjGYb67h12GUz1mQO+V945Du99iej5PkOZbL1iM+zEFYzRwYPR6uJfiJYvYFV5IHSuqH13bKu5ZXX7bNzxVz5UscyRr4lWICVXLruct0SZ1zxaTChoFJA6umQMO7Jwm5V59EyKrtBInG96sULK1TC7GPGq6fvAh32l3VqZyH+a2zS8GvsH7NAAHNt3IabqRg/QRvob1nuQxIXj2M3er+POOIt5N9OZz5BXUnrsleI7xD88WgIqyXVjo6TskdW6FkS+cJHnxLglu3i1fJBOgFinb/f9Eys13IXYCkxpmNoKKRJoQQwtu1mLpkiruq2hfBJ3cUAiunAO8pSEAIIVWXrtt3C8bAMEjU8N9VCD5ffX1eyyCYOQWMpylQ734B2DYqUOesDfHO/sNnbNlHz6vmzTe3oIv7bzGkW8897/F6Ii12thsZoBhiweabSOgOv6QoI+slHynQj+itCaiYBHUXXhKLjBvdamQA5FIBYlUBUnVBnmEFTeRTk4dAvLvQFO8miLJLxVYdUrDNs1SeK9sap1AIa+FgVuhEYFvjFIcE9unYGjVLCtRMDBzTMDAJ7e1sJuOmNsqDAehE+BGDYDkGwQQNB+9uEg8L/hWuh9YzXoje75lYXViIVwFpiBKwqbgdFkX5ybEECCH02V07jkVRHmNb4xQsirJsD/4L5j+KqY53NfUAAAAASUVORK5CYII%3D%22%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20css%20%u043A%u043E%u0434%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20..........%0Avar%20css%20%3D%20self.Help%3B%0Avar%20run%20%3D%20Application.prefs.get%28s%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20..........%0Afunction%20setStyleForPages%28reason%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%22destructor%22%20%29%20return%3B%20%0A%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%20%0A%20%20%20var%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%29%3B%20%0A%20%20%20%0A%20%20%20try%20%7B%20sss.unregisterSheet%28Services%5B_id%20+%20%22previousUri%22%5D%20%7C%7C%20uri%2C%200%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20Services%5B_id%20+%20%22previousUri%22%5D%20%3D%20uri%3B%0A%20%20%20%0A%20%20%20run.value%20%26%26%20%21reason%20%26%26%20sss.loadAndRegisterSheet%28%20uri%2C%200%20%29%3B%0A%20%20%20icon.src%20%3D%20run.value%20%3F%20styleImage%20%3A%20self.image%3B%0A%7D%3B%0AaddDestructor%28setStyleForPages%29%3B%0Arun.value%20%26%26%20setStyleForPages%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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/*AGENT_SHEET*/%0A%0A%20%20a%2C%20a%20span%20%0A%7B%0A%20%20text-decoration%3A%20none%20%21important%3B%20%0A%20%20color%3A%20%23BABAFF%20%21important%3B%0A%7D%0Aa%3Avisited%2C%20a%3Avisited%20span%20%7Bcolor%3A%20red%20%21important%3B%7D%0A%0Aa%3Ahover%2C%20a%3Ahover%20span%20%0A%7B%0A%20%20color%3A%20%239999ff%20%21important%3B%0A%20%20text-shadow%3A%200px%200px%208px%20%239999ff%20%21important%3B%20%0A%20%20transition%3A%20text-shadow%20.3s%20%20linear%20%21important%3B%0A%7D%0Aa%3Aactive%2C%20a%3Aactive%20span%20%20%7Bcolor%3A%20Silver%20%21important%3B%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация

Выделить код

Код:

// ЛКМ переключить настройки кнопки и стиль ..........
this._handleClick = function() setStyleForPages(void(run.value = !run.value));


// Создать настройки кнопки в about:config если они не существует ..........
var s = "CB" + _id.slice(20) + ".setStyleForPage";
cbu.isPref(s, false);
var previousUri = "CB" + _id.slice(20) + ".previousUri";


// Иконка для включеной кнопки  ..........
var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
var styleImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8ElEQVQ4jY2RaSzbcRjHf3S2N9sLU1UqC1lshFmMycZeOFpsUxbX3HHNimxZmGsZ3eIYosx9DEsakcWMTRwVXbQ2Vtrq3O3866q7rjl3WJ+9ECIxme/7z+f5PvkidCDqBYOnQ6snWhLYs8sFnfI/2e3zP+ktMytBzHE+8ZFIBx0nOhlih8Qvcknn9BZ0yLbAukRarRkuNEAIKR2HVzLOEucwB1a+W+SPMB80TvdeTx9ikvy71I53PbEv8L14/ZdhQl82KUx4LZ41O0LJljRo0USWBkmSMvPMUa5ZmrTVLBlrvZos4epHD1Xtw9rRIr0o1uxgcffyIjGYb67h12GUz1mQO+V945Du99iej5PkOZbL1iM+zEFYzRwYPR6uJfiJYvYFV5IHSuqH13bKu5ZXX7bNzxVz5UscyRr4lWICVXLruct0SZ1zxaTChoFJA6umQMO7Jwm5V59EyKrtBInG96sULK1TC7GPGq6fvAh32l3VqZyH+a2zS8GvsH7NAAHNt3IabqRg/QRvob1nuQxIXj2M3er+POOIt5N9OZz5BXUnrsleI7xD88WgIqyXVjo6TskdW6FkS+cJHnxLglu3i1fJBOgFinb/f9Eys13IXYCkxpmNoKKRJoQQwtu1mLpkiruq2hfBJ3cUAiunAO8pSEAIIVWXrtt3C8bAMEjU8N9VCD5ffX1eyyCYOQWMpylQ734B2DYqUOesDfHO/sNnbNlHz6vmzTe3oIv7bzGkW8897/F6Ii12thsZoBhiweabSOgOv6QoI+slHynQj+itCaiYBHUXXhKLjBvdamQA5FIBYlUBUnVBnmEFTeRTk4dAvLvQFO8miLJLxVYdUrDNs1SeK9sap1AIa+FgVuhEYFvjFIcE9unYGjVLCtRMDBzTMDAJ7e1sJuOmNsqDAehE+BGDYDkGwQQNB+9uEg8L/hWuh9YzXoje75lYXViIVwFpiBKwqbgdFkX5ybEECCH02V07jkVRHmNb4xQsirJsD/4L5j+KqY53NfUAAAAASUVORK5CYII=";


// Получить настройки кнопки и css код из вкладки Справка ..........
var css = self.Help;
var run = Application.prefs.get(s);


// Переключить css стиль для страницы ..........
function setStyleForPages(reason) {
   if ( reason == "destructor" ) return; 

   var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); 
   var uri = makeURI("data:text/css," + encodeURIComponent(css)); 
   
   try { sss.unregisterSheet(Services[_id + "previousUri"] || uri, 0) } catch(e) {};
   Services[_id + "previousUri"] = uri;
   
   run.value && !reason && sss.loadAndRegisterSheet( uri, 0 );
   icon.src = run.value ? styleImage : self.image;
};
addDestructor(setStyleForPages);
run.value && setStyleForPages();


Спрятать панель дополнений
скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0421%u043F%u0440%u044F%u0442%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB30lEQVR42mNkoBAwInPWHbjdsHDHrVsbO7yXkWVA7fwT/+XlxRjmrjq39Om961mPdtV+IsmA3Il7/jvbazL8/PmHYcPOG3dPX3oUfWdN6kmiDUhq2/jf3kqD4f9/EO8/w/Xbb37vOPqo7uWtI10vjk/7R9CA8OoV/20tNUF6Gf79/8fw7+9fhs9ffjDsO/V834P7j2Lvbyl+hteAwJKF/63MdYAu+M/wF6j5798/DL9//WL4/fsnw437n99cvf856ebKpM04DfArmPff1FSP4f+//xDNQI1fPn9lePf2PcPz5y8Z7j16/Z+BS3Ly/U35+VgNcM2Y8V9DU4fhz58/DN9//GL4/PkL0IBPDJ8/fWD4+P4dw7dv3/7/5xCZ9GBbRQFOAzS1DcEG/Pz5k+Hrt+9AzR8ZPn14x/D+w9tXHz//SHq8t30rTi945s76b2BgwfDr92+gbUDNX74yfPjwhuHurSs7Xz+5n/DmwooXeAPRp2jOf3NTe4bv338ANX9huPvw5s9LJ49Uvn9wccLXJ6f/E4xG39K5/20tXBjeAP18YP+Wa7dOH4/6cH3LRaITklfZnP+y8ir/t65aOPPtnctF35+e+c5AAKAYYJvfsfDKzr1r3t/YvZmQRqwGkAMAJ5ELIPTev5gAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0421%u043F%u0440%u044F%u0442%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%20%u043E%u0442%2011.02.2014.%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20pref.value%20%3D%20pref.value%20%3F%20false%20%3A%20true%3B%0A%7D%3B%0A%0A%0Avar%20right%20%3D%200%3B%20//%20%u043E%u0442%u0441%u0442%u0443%u043F%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u0432%20px%20%20%0A%0Avar%20s%20%3D%20%27CB.hideAddonBar%27%0Acbu.isPref%28s%2C%20false%20%29%3B%0Avar%20pref%20%3D%20Application.prefs.get%28s%29%3B%0A%0A%0Afunction%20toggleButton%28%29%20%7B%20%20%20%0A%20%20%20document.getElementById%28%22ctraddon_addon-bar%22%29.setAttribute%28%27hideElements%27%2C%20pref.value%20%29%3B%20%20%20%20%20%0A%20%20%20%20%0A%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//%20icon.style.transform%20%3D%20pref.value%20%3F%20%22rotate%28180deg%29%22%20%3A%20%22%22%3B%20%20%20//%20%u043F%u0435%u0440%u0435%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%0A%20%20%20%0A%20%20%20self.tooltipText%20%3D%20pref.value%20%3F%20%27%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%27%20%3A%20%27%u0421%u043F%u0440%u044F%u0442%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%27%3B%20%20%20%20%20%0A%7D%3B%0AtoggleButton%28%29%3B%0AgPrefService.addObserver%28%20s%2C%20toggleButton%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20gPrefService.removeObserver%28%20s%2C%20toggleButton%2C%20false%20%29%20%7D%29%3B%0A%0A//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u043F%u0430%u043D%u0435%u043B%u0438%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%20%20................................%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A/*%20%u043C%u0438%u043D%u0438%u043C%u0430%u043B%u044C%u043D%u044B%u0439%20%u0438%20%u043F%u0440%u043E%u0437%u0440%u0430%u0447%u043D%u044B%u0439%20*/%5C%0A%23ctraddon_addon-bar%20%7B%5C%0Awidth%3A%20auto%3B%5C%0Aposition%3A%20fixed%3B%20bottom%3A%20906px%3B%5C%0Apadding-top%3A%202px%20%21important%3B%5C%0Apadding-left%3A%202px%20%21important%3B%5C%0Apadding-right%3A%200px%3B%5C%0Aright%3A%20%27%20+%20right%20+%20%27px%3B%5C%0Abackground%3A%20rgba%28120%2C120%2C250%2C.4%29%20%21important%3B%5C%0A%7D%5C%0A/*%20%u0435%u0441%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0443%20%u0438%u043D%u0441%u0442%u0440%u0443%u043C%u0435%u043D%u0442%u043E%u0432%20*/%5C%0A%23ctraddon_addon-bar%5Bcustomizing%5D%20%7B%5C%0Abackground%3A%20-moz-Dialog%3B%5C%0Aborder-radius%3A%207px%200%200%200%3B%5C%0Aposition%3A%20fixed%3B%5C%0Avisibility%3A%20visible%20%21important%3B%5C%0A%7D%5C%0A/*%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u044D%u043B%u0435%u043C%u0435%u043D%u0442%u044B%2C%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0438%20%u0430%u0442%u0440%u0438%u0431%u0443%u0442%u0430%20hideElements%20*/%5C%0A%23ctraddon_addon-bar%20dropmarker%2C%5C%0A%23addonbar-closebutton%2C%5C%0A%23ctraddon_addon-bar%3Anot%28%5Bcustomizing%5D%29%5BhideElements%3D%22true%22%5D%20label%2C%5C%0A%23ctraddon_addon-bar%3Anot%28%5Bcustomizing%5D%29%5BhideElements%3D%22true%22%5D%20hbox%2C%5C%0A%23ctraddon_addon-bar%3Anot%28%5Bcustomizing%5D%29%5BhideElements%3D%22true%22%5D%20.statusbarpanel-iconic%2C%5C%0A%23ctraddon_addon-bar%3Anot%28%5Bcustomizing%5D%29%5BhideElements%3D%22true%22%5D%20toolbarbutton%3Anot%28%5Bid%3D%22%27%20+%20_id%20+%20%27%22%5D%29%2C%5C%0A%23ctraddon_addon-bar%3Anot%28%5Bcustomizing%5D%29%5BhideElements%3D%22true%22%5D%20%23UserScriptLoader-icon%20%7B%5C%0Adisplay%3A%20none%20%21important%3B%5C%0A%7D%5C%0A%5C%0A%23ctraddon_addon-bar%20%3E%20%23status-bar%20%3E%20.statusbar-resizerpanel%20%7B%5C%0Aposition%3A%20relative%3B%5C%0Amargin-right%3A-4px%3B%5C%0A%7D%5C%0A%27%29%29%3B%0A%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0AaddDestructor%28function%28%29%20%7B%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%20%7D%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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/*Addon%20Bar*/%0A%0A%23addon-bar%7B%0A%09%22-moz-appearance%3A%20none%20%21important%3B%0A%09border%3A%201px%20solid%20rgba%2810%25%2C10%25%2C10%25%2C.4%29%20%21important%3B%0A%09border-bottom%3A%20none%20%21important%3B%0A%09border-right%3A%20none%20%21important%3B%0A%09border-radius%3A%204px%200%200%200%20%21important%3B%0A%09background%3A%20rgba%28207%2C%20219%2C%20236%2C%20.85%29%3B%0A%09position%3A%20fixed%3B%0A%09bottom%3A%200%3B%0A%09right%3A%200%3B%0A%09height%3A%2022px%3B%0A%09width%3A%20auto%3B%0A%09min-width%3A%2018px%3B%0A%09vertical-align%3A%20top%3B%0A%09padding-left%3A%200%3B%0A%09margin%3A%200px%3B%22%0A%0A%7D%0A%0A%23browser-bottombox%7B%0A%09border%3A%20none%20%21important%3B%0A%7D%0A%0A%23addon-bar%20.chromeclass-toolbar-additional%7B%0A%09vertical-align%3A%20top%3B%0A%09%0A%7D%0A%0A%23addon-bar%20.toolbarbutton-1%7B%0A%09vertical-align%3A%20top%3B%0A%09padding%3A%201px%20%21important%3B%0A%7D%0A%0A%23addonbar-closebutton%7B%0A%09display%3A%20none%3B%0A%7D%0A%0A%23main-window%5Bsizemode%3D%22maximized%22%5D%20%23browser-bottombox%20%23addon-bar%7B%0A%20%20margin%3A%200%20%21important%3B%0A%7D%0A%0A%23status-bar%7B%0Aheight%3A%2022px%3B%0Aborder-bottom%3A%20none%20%21important%3B%0Amin-width%3A%2018px%3B%0Avertical-align%3A%20top%3B%0Apadding-left%3A%200%3B%0Amargin%3A%200px%3B%0Abackground%3A%20transparent%3B%0A%7D%0A%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация

Выделить код

Код:

// Спрятать панель дополнений от 11.02.2014.

this.onclick = function(e) {
     if ( e.button == 0 ) pref.value = pref.value ? false : true;
};


var right = 0; // отступ справа в px  

var s = 'CB.hideAddonBar'
cbu.isPref(s, false );
var pref = Application.prefs.get(s);


function toggleButton() {   
   document.getElementById("ctraddon_addon-bar").setAttribute('hideElements', pref.value );     
    
   var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");
  // icon.style.transform = pref.value ? "rotate(180deg)" : "";   // перевернуть иконку
   
   self.tooltipText = pref.value ? 'Показать панель дополнений' : 'Спрятать панель дополнений';     
};
toggleButton();
gPrefService.addObserver( s, toggleButton, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleButton, false ) });

// Стиль для панели дополнений  ................................
var uri = makeURI('data:text/css,'+ encodeURIComponent('\
/* минимальный и прозрачный */\
#ctraddon_addon-bar {\
width: auto;\
position: fixed; bottom: 906px;\
padding-top: 2px !important;\
padding-left: 2px !important;\
padding-right: 0px;\
right: ' + right + 'px;\
background: rgba(120,120,250,.4) !important;\
}\
/* если открыть настройку инструментов */\
#ctraddon_addon-bar[customizing] {\
background: -moz-Dialog;\
border-radius: 7px 0 0 0;\
position: fixed;\
visibility: visible !important;\
}\
/* убираем лишние элементы, убираем кнопки при добавлении атрибута hideElements */\
#ctraddon_addon-bar dropmarker,\
#addonbar-closebutton,\
#ctraddon_addon-bar:not([customizing])[hideElements="true"] label,\
#ctraddon_addon-bar:not([customizing])[hideElements="true"] hbox,\
#ctraddon_addon-bar:not([customizing])[hideElements="true"] .statusbarpanel-iconic,\
#ctraddon_addon-bar:not([customizing])[hideElements="true"] toolbarbutton:not([id="' + _id + '"]),\
#ctraddon_addon-bar:not([customizing])[hideElements="true"] #UserScriptLoader-icon {\
display: none !important;\
}\
\
#ctraddon_addon-bar > #status-bar > .statusbar-resizerpanel {\
position: relative;\
margin-right:-4px;\
}\
'));

const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET) });


===================
Спасибо, turbot
Проблема частично решена
Осталась только Открыть страницу или выделенную ссылку в другом браузере

Отредактировано Ultima2m (08-06-2016 17:26:34)

Отсутствует

 

№135908-06-2016 21:31:08

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

Re: Обсуждение кнопок CB

bunda1
А как бы к About: Menus Mod прикрутить из твоей кнопки №111
ПКМ => открыть about:config,
СКМ => открыть about:config с настройкой( выделенной или из буфера )

Отсутствует

 

№136009-06-2016 09:17:58

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

Re: Обсуждение кнопок CB

voqabuhe пишет

bunda1
А как бы к About: Menus Mod прикрутить из твоей кнопки №111
ПКМ => открыть about:config,
СКМ => открыть about:config с настройкой( выделенной или из буфера )

Добавь в начале инициализации:

Выделить код

Код:

// Настройка функций кликов мыши для кнопки .....
this.onclick =e=> {
          
    // действие при клике СКМ ....    
    if ( e.button == 1 ) { 
         // запомнить текст из буфера обмена и скопировать текст на странице
         var clip = gClipboard.read();
         window.content.focus();
         goDoCommand("cmd_copy");            

         gBrowser.selectedTab = gBrowser.addTab('about:config?filter=' + gClipboard.read()); 
                   
         clip && gClipboard.write(clip); // вернуть текст в буфер обмена
         }
     
    // действие при клике ПКМ ....    
    if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
         e.preventDefault();  
         gBrowser.selectedTab = gBrowser.addTab("about:config");  
         }
};

Отсутствует

 

№136109-06-2016 16:37:17

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

Re: Обсуждение кнопок CB

bunda1
Спасибо. Очень полезная добавка получилась к About: Menus Mod

Добавлено 09-06-2016 16:50:29
Есть такая полезная кнопочка About:config Multiple Selection, всё хорошо, но вот есть  в ней один баг, перестают работать в about:config Сброс и переключение значения по двойному ЛКМ. Может кто глянет? Плиз. help.gif
Автор исправил

Отредактировано voqabuhe (15-06-2016 17:24:54)

Отсутствует

 

№136212-06-2016 06:35:50

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 47.0

Re: Обсуждение кнопок CB

В 47.0 перестала работать кнопка Переключить JavaScript( Firefox17+ ) от 13.02.2016. Поправьте, пожалуйста.

Отсутствует

 

№136312-06-2016 10:01:04

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

Re: Обсуждение кнопок CB

rubel пишет

В 47.0 перестала работать кнопка Переключить JavaScript

У меня, видимо, аналогичная кнопка Включить/Выключить JavaScript
Она не только не работает, но ее вообще невозможно удалить.
Меню кнопки просто нет ни с shift, ни с ctrl.
Удалял папку custombuttons и отключал дополнение Custombuttons
Эта нехорошая кнопка висит и никуда не собирается пропадать.
Подскажите, где могла прописаться эта зараза?

Отсутствует

 

№136412-06-2016 11:02:12

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

Re: Обсуждение кнопок CB

Подскажите если мне надо узнать скрыт ли элемент как лучше написать

Выделить код

Код:

getComputedStyle(element, null).display

или

getComputedStyle(element, null).getPropertyValue('display')

И в чем принципиальная разница?

Отсутствует

 

№136512-06-2016 11:08:00

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 47.0

Re: Обсуждение кнопок CB

Ultima2m ПКМ на строчке кнопки

скрытый текст
UkBGi7Y.jpg

Отсутствует

 

№136612-06-2016 11:18:39

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 47.0

Re: Обсуждение кнопок CB

перестала работать закрыть/перезагрузить

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

Выделить код

Код:

/*Initialization Code*/

this.tooltipText = "Left     => Перезагрузить \nMiddle => Закрыть \nRight   => Меню";

this.onclick = function(event) {
    if(event.button == 0) {
// Действие при клике ЛКМ
  var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
                             .getService(Components.interfaces.nsIAppStartup);
  appStartup.quit(appStartup.eForceQuit | appStartup.eRestart);
    }
        else if(event.button == 1 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Действие при клике ПКМ без модификаторов
goQuitApplication();
    }
};/*Initialization Code*/                                                                                                                                                                                                                                     //  Настройка функций кликов мыши для кнопки .................
this.onclick = function(e) {
     
    if ( e.button == 0 ) Application.restart(); // ЛКМ
         
    if ( e.button == 1 ) gShowPopup(this); // СКМ 
        
    if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ
         e.preventDefault();
         goQuitApplication();
         }
};
this.tooltipText = "Л: Перезагрузить \nС: CB Меню \nП: Закрыть";/*Initialization Code*//*Initialization Code*/                                                                                                                                                                                             // Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014. ..............
(function () { 
   var searchbar = document.getElementById("searchbar");
   if ( !searchbar ) return;
 
   addEventListener('DOMMouseScroll', function(){
      searchbar.textbox.value = '';
   }, false, searchbar ); 
})();


вылечить можно?

Отсутствует

 

№136712-06-2016 11:37:19

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

Re: Обсуждение кнопок CB

vitalii201 пишет

Ultima2m ПКМ на строчке кнопки

Это было бы слишком просто :|
В этом списке ее просто нет.
mIVIL8e.png
Такое чувство, что она в код прописалась :lol:

Отсутствует

 

№136812-06-2016 12:42:29

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

Re: Обсуждение кнопок CB

Ultima2m пишет

Удалял папку custombuttons и отключал дополнение Custombuttons
Эта нехорошая кнопка висит и никуда не собирается пропадать.
Подскажите, где могла прописаться эта зараза?

Отключи в настройках Custom buttons инициализацию кнопок + рестарт, потом ПКМ на кнопке и все дела. По идеи удаление папки custombuttons при выключенным браузере должно было помочь, такая кнопка не могла ни где прописаться :/

Отсутствует

 

№136912-06-2016 13:17:45

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

Re: Обсуждение кнопок CB

rubel пишет

В 47.0 перестала работать кнопка Переключить JavaScript( Firefox17+ ) от 13.02.2016. Поправьте, пожалуйста.

Переключить JavaScript

Отсутствует

 

№137012-06-2016 13:22:50

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

Re: Обсуждение кнопок CB

Извиняюсь перед всеми, но похоже, эта кнопка все-таки вшита.

У меня Cyberfox и в принципе он от ФФ не отличается. Перешел на него, когда не было ФФ х64.
Создал чистый профиль и эта кнопка там присутствует.
А я тут всех взбаламутил.

Отсутствует

 

№137112-06-2016 13:35:57

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

Re: Обсуждение кнопок CB

oleg953 пишет

перестала работать закрыть/перезагрузить
вылечить можно?

Выделить код

Код:

// Настройка функций кликов мыши для кнопки .................
this.onclick = function(e) {
     
    if ( e.button == 0 ) { // ЛКМ
         var startup = Services.startup; startup.quit(startup.eForceQuit | startup.eRestart); 
         }
         
    if ( e.button == 1 ) gShowPopup(this); // СКМ 
        
    if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ
         e.preventDefault();
         goQuitApplication();
         }
};
this.tooltipText = "Л: Перезагрузить \nС: CB Меню \nП: Закрыть";                                                                                                                                                                                             // Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014. ..............


(function () { 
   var searchbar = document.getElementById("searchbar");
   if ( !searchbar ) return;
 
   addEventListener('DOMMouseScroll', function(){
      searchbar.textbox.value = '';
   }, false, searchbar ); 
})();

Отсутствует

 

№137212-06-2016 14:00:12

1fesFFFF
Участник
 
Группа: Members
Зарегистрирован: 22-01-2010
Сообщений: 252
UA: Firefox 47.0

Re: Обсуждение кнопок CB

turbot пишет

Замените ...

Спасибо!

Отредактировано 1fesFFFF (12-06-2016 14:00:46)

Отсутствует

 

№137312-06-2016 16:05:17

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

Re: Обсуждение кнопок CB

Ну а мой вопрос чуть выше как же?
https://forum.mozilla-russia.org/viewtopic.php?pid=717302#p717302

Отсутствует

 

№137412-06-2016 16:52:33

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 47.0

Re: Обсуждение кнопок CB

bunda1
Спасибо, прекрасно работает и иконку сразу заметно, когда выключены JavaScript. :)

Отсутствует

 

№137512-06-2016 17:15:52

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 47.0

Re: Обсуждение кнопок CB

bunda1 пишет

bunda1

спасибо :beer:

Отсутствует

 

Board footer

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