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 ); })();
Отсутствует
1fesFFFF
на:
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)
Отсутствует
Отсутствует
Custom Buttons • View topic - About: Menus Mod
вот она то и отвалилась в 47
Добавлено 08-06-2016 13:20:06
нашёл то что работает №111
Отредактировано oleg953 (08-06-2016 13:20:06)
Отсутствует
вот она то и отвалилась в 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
нашёл то что работает №111
Там слишком мало эбаутов
Отсутствует
Продублирую тут свой пост, может кто решил вопрос.
В 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) });
Отредактировано Ultima2m (08-06-2016 17:26:34)
Отсутствует
bunda1
А как бы к About: Menus Mod прикрутить из твоей кнопки №111
ПКМ => открыть about:config,
СКМ => открыть about:config с настройкой( выделенной или из буфера )
Отсутствует
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"); } };
Отсутствует
bunda1
Спасибо. Очень полезная добавка получилась к About: Menus Mod
Добавлено 09-06-2016 16:50:29Есть такая полезная кнопочка About:config Multiple Selection, всё хорошо, но вот есть в ней один баг, перестают работать в about:config Сброс и переключение значения по двойному ЛКМ. Может кто глянет? Плиз.
Автор исправил
Отредактировано voqabuhe (15-06-2016 17:24:54)
Отсутствует
В 47.0 перестала работать кнопка Переключить JavaScript( Firefox17+ ) от 13.02.2016. Поправьте, пожалуйста.
Отсутствует
В 47.0 перестала работать кнопка Переключить JavaScript
У меня, видимо, аналогичная кнопка Включить/Выключить JavaScript
Она не только не работает, но ее вообще невозможно удалить.
Меню кнопки просто нет ни с shift, ни с ctrl.
Удалял папку custombuttons и отключал дополнение Custombuttons
Эта нехорошая кнопка висит и никуда не собирается пропадать.
Подскажите, где могла прописаться эта зараза?
Отсутствует
Подскажите если мне надо узнать скрыт ли элемент как лучше написать
getComputedStyle(element, null).display или getComputedStyle(element, null).getPropertyValue('display')
И в чем принципиальная разница?
Отсутствует
Ultima2m ПКМ на строчке кнопки
Отсутствует
перестала работать закрыть/перезагрузить
/*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 ); })();
Отсутствует
Удалял папку custombuttons и отключал дополнение Custombuttons
Эта нехорошая кнопка висит и никуда не собирается пропадать.
Подскажите, где могла прописаться эта зараза?
Отключи в настройках Custom buttons инициализацию кнопок + рестарт, потом ПКМ на кнопке и все дела. По идеи удаление папки custombuttons при выключенным браузере должно было помочь, такая кнопка не могла ни где прописаться
Отсутствует
В 47.0 перестала работать кнопка Переключить JavaScript( Firefox17+ ) от 13.02.2016. Поправьте, пожалуйста.
Отсутствует
Извиняюсь перед всеми, но похоже, эта кнопка все-таки вшита.
У меня Cyberfox и в принципе он от ФФ не отличается. Перешел на него, когда не было ФФ х64.
Создал чистый профиль и эта кнопка там присутствует.
А я тут всех взбаламутил.
Отсутствует
перестала работать закрыть/перезагрузить
вылечить можно?
// Настройка функций кликов мыши для кнопки ................. 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 ); })();
Отсутствует
Ну а мой вопрос чуть выше как же?
https://forum.mozilla-russia.org/viewtopic.php?pid=717302#p717302
Отсутствует