Поправьте пожалуйста кнопку закрытия страницы, а по правому клику все вкладки.
this.closeAllTabs = function() { //ripped from TMP if(gBrowser.warnAboutClosingTabs("All")) { var childNodes = gBrowser.mTabContainer.childNodes; for (var i = childNodes.length - 1; i >= 0; i--) if (childNodes[i] != gBrowser.mCurrentTab) gBrowser.removeTab(childNodes[i]); gBrowser.removeTab(gBrowser.mCurrentTab); } } this.closeTab = function(evt) { if(evt.shiftKey) { this.showPopup(this); return; } switch(evt.button) { case 0: //close current tab gBrowser.removeCurrentTab(); break; case 2: //close all tabs this.closeAllTabs(); break; case 1: //close other tabs gBrowser.removeAllTabsBut(gBrowser.mCurrentTab); } } this.showPopup = function(node) { var popup = document.getElementById("custombuttons-contextpopup"); var x = node.boxObject.x; var y = node.boxObject.y + node.boxObject.height; document.popupNode = node; popup.showPopup(node, x, y, "popup", null, null); } this.tooltipText = "Left click - close current tab, middle click - close all tabs, right click - close other tabs"; this.setAttribute("onclick", "this.closeTab(event);"); this.setAttribute("context", "");
Отсутствует
Gladius333
Так в инструментах разработки включите темную тему!скрытый текст
Спасибо все норм, вот только у него темнее фон и текст другой, как добиться такого?
Отредактировано Gladius333 (30-08-2017 23:02:08)
Отсутствует
Поправьте пожалуйста кнопку закрытия страницы, а по правому клику все вкладки.
this.onclick =e=> { if ( e.button == 0 ) gBrowser.removeCurrentTab(); // ЛКМ if ( e.button == 1 ) [...gBrowser.tabs].forEach(tab=> !tab.pinned && gBrowser.removeTab(tab)); // СКМ if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey ) { // ПКМ e.preventDefault(); gBrowser.removeAllTabsBut(gBrowser.mCurrentTab); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; this.tooltipText = "Left click - close current tab, middle click - close all tabs, right click - close other tabs";
Добавлено 31-08-2017 19:49:50
Custom Buttons • View topic - [Signed fixed extension attached] CB broken on Firefox 48+
Отредактировано bunda1 (31-08-2017 19:49:50)
Отсутствует
На 55 версии работает 0.0.5.8.9?. Может просто версия не пашет, поэтому все кнопки отвалились?
то же не работает
https://forum.mozilla-russia.org/viewto … =41987&p=1
Читаем главную шапку, и скачайте оттуда этот файл "custombuttons@xsms.org.xpi", кидаем его в папку "FF\Profile\extensions".
Gladius333
А вот это мне неведомо. Наверное стиль, скрипт или правка кнопки.
Жаль модер и пару людей знают как это сделать (так как сами юзают), но молчат... или мне кажется просто игнорят меня)
Отредактировано Gladius333 (31-08-2017 21:47:38)
Отсутствует
Жаль модер и пару людей знают как это сделать (так как сами юзают), но молчат... или мне кажется просто игнорят меня)
А я вот не знаю и не игнорю и кнопку ту не юзаю.
Отсутствует
bunda1
Обрати внимание, в который раз уже прошу, почини кнопочку https://forum.mozilla-russia.org/viewtopic.php?id=69984, пожалуйста.
Отредактировано tom911 (31-08-2017 22:12:45)
Отсутствует
bunda1
Обрати внимание, в который раз уже прошу, почини кнопочку https://forum.mozilla-russia.org/viewtopic.php?id=69984, пожалуйста.
Заново установи код с [CB]Сохранять изображение без запроса в установленные папки | Форум Mozilla Россия и выключи e10.
Отсутствует
Gladius333 пишетЖаль модер и пару людей знают как это сделать (так как сами юзают), но молчат... или мне кажется просто игнорят меня)
А я вот не знаю и не игнорю и кнопку ту не юзаю.
А вспомнил первая "infocatcher-а", а вторая "turbot-a", сорри. Они тут не бывают, в личку обойм писал, что-то тишина. Но раз все почти юзают, думал и ты, хм.
Отредактировано Gladius333 (31-08-2017 23:00:27)
Отсутствует
tom911 пишетbunda1
Обрати внимание, в который раз уже прошу, почини кнопочку https://forum.mozilla-russia.org/viewtopic.php?id=69984, пожалуйста.Заново установи код с [CB]Сохранять изображение без запроса в установленные папки | Форум Mozilla Россия и выключи e10.
А где включается/выключается e10? И где проверить - включён он у меня или нет?
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
в который раз уже прошу
Ну, переписывать, тестировать, конечно, не буду,
но так, кое-что подпаял. Вроде работает, на первый взгляд.
((contextMenu, saveimage) => { var s = "CB.allPathsToImageFolders"; var defaultDownFolder = Services.downloads.defaultDownloadsDirectory.path; // папка для сохранения изображений по умолчанию // Создать новое меню в контекстном меню изображений на странице .... var menu = contextMenu.insertBefore(document.createElement("menu"), saveimage); // contextMenu.children[41] menu.setAttribute("label", "Сохранить в папку:"); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVR42pXTTUgUURwA8P+bD2fcmcVwY0v7IMIiUQyCDh7aN2AeUiu6SBApgUlfhw6dJOnarUsQRG2Qpd06xC7tIZtOfSiEJRmJurtIhoubM+7MrrM7b3ozQx+strJvDsN/5v//vff+bwZB2WgaeNwq8OwExzKcGxPieM9LhJQKln10Ido//W8+KgcODIzgHdsklSZ78e+7JLKwrJsKBd5UBA4OjuCdFLAsf+ZcoVgdcGjwCW6ol9Ri0QdWDesvoFHg0RZA86WnuLFeVontAxmtUB3QenkUN4Zk1SF+vJQ1qwParo7h3aGgirxXCFLLa2U96NsCuPYM7wvXqZx7igjB3HcdHHoFBAQ/Vg0lGT1fGWi/8Zz2IKgKvOABXxc1cBwHankCGbqC2ftnNwLhcw/6W/Zuf0gcxCJatCccAp4T3Hr4nKYAIcAxNhj5HMUI8IxTSmX00ytjF+Me0HJlNEAniSltTYoNLDB0+YhhwMU+Jn2AfohASiUQOZtuaylRw7GnktE+688WlKEX0s81M9ZxpBk7iKeICzAwOa/TYhtsCghMEWbTqVeyKJ6cudeb39CDjuG4lNWNWFf7YcywNcCxLHyYz4FlFYGDdfgy9208UBvombl7Jv/fJnbeSkiLmWz8QtexiCiIMLFggrVuwOT01GspEOz5dKfbrHgK7ogMxeSsnotd7z0emUoXYPzdW1WW67rf3+40y3M3Bbye3Hwpr2havED/if27Gk4khrGxWd4vPuUDIJB3TGUAAAAASUVORK5CYII="); menu.setAttribute("id", "context-cbDownloadImageToFolders"); addEventListener("popupshowing", e=> menu.hidden = saveimage.hidden, false, contextMenu); addDestructor(()=> menu.remove()); // Создать у меню подменю с папками загрузки .... var menuPopup = menu.appendChild(document.createElement("menupopup")); menuPopup.setAttribute('style', 'overflow: auto'); menuPopup.setAttribute("closemenu", "none"); menuPopup.addEventListener("popuphidden", setPaths); // записать в 'about:config' изменения в подменю // добавить в подменю папки и разделители function setItemsToMenuPopup() { menuPopup.textContent = ""; getPaths().forEach(str=> { if ( str == '' ) { var sep = menuPopup.appendChild(document.createElement("menuseparator")); sep.onwheel =e=> moveNode(e); return; }; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.value = str, mItem.path = str.split(">").shift(); mItem.setAttribute("tooltiptext", mItem.path); mItem.setAttribute("label", (/>/.test(str) ? str.split(">") : str.split("\\")).pop()); mItem.onwheel =e=> e.ctrlKey && moveNode(e); mItem.onclick =e=> e.button || downloadToFolder(mItem.path); }) }; setItemsToMenuPopup(); // Колёсиком мыши перемещать элемент верх-вниз в подменю .... function moveNode(e, el = e.target) { if (e.deltaY > 0) el.nextSibling && menuPopup.insertBefore(el, el.nextSibling.nextSibling); else if (el.previousSibling) menuPopup.insertBefore(el, el.previousSibling); } function save() { var func = eval( gContextMenu.saveMedia.toSource() .replace(/(false,\s+)false,/, "$1true,") .replace(/^s/, "0,function s") ); (save = () => func.call(gContextMenu))(); } // Сохранить изображение над которым открыто контекстное меню в указаную папку .... function downloadToFolder(path) { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } catch(e) { var dir = defaultDownFolder }; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path)); save(); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir)); }; // Создать контекстное меню для редактирования подменю .... var popup = gBrowser.appendChild(document.createElement("menupopup")); addDestructor(()=> popup.remove()); menuPopup.oncontextmenu =e=> { e.preventDefault(); popup.el = e.target; popup.openPopupAtScreen(e.screenX, e.screenY); // скрывать не нужные пункты контекстнов меню на разделителях [...popup.children].forEach((el,i)=> { el.hidden = (popup.el.localName == "menuseparator" && i > 3); }) }; // добавить в контекстном меню пункты и разделители [ ["Добавить папку", "addNode(true, popup.el)"], ["Добавить разделитель", "addNode(false, popup.el)"], ["separator"], ["Удалить элемент", "removeNode(popup.el)"], ["Переименовать папку", "changeMenuitemLabel(popup.el)"], ["separator"], ["Открыть реальную папку", "openOrRemoveFolder(true, popup.el)"], ["Удалить реальную папку", "openOrRemoveFolder(false, popup.el)"] ] .forEach(m=> { if ( m == "separator" ) { popup.appendChild(document.createElement("menuseparator")); return; } var mItem = popup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.onclick =()=> eval(m[1]); }); // Изменить название папки в подменю .... function changeMenuitemLabel(el) { var val = custombuttons.promptBox('', 'Ведите другое название папки')[1]; if (val == '') return; el.setAttribute('label', val); el.value = el.path + ">" + val; }; // Удалить элемент из подменю .... function removeNode(el) {menuPopup.children.length > 1 && el.remove();} // Добавить в 'about:config' новую папку или разделитель .... function addNode(addFolder, el) { var pos = [...menuPopup.children].indexOf(el) + 1; if (!addFolder) return setState(pos, ""); var fp = window.makeFilePicker(); fp.init(window, "Укажите путь к папке для сохранения изображений", fp.modeGetFolder); fp.open(res => res == fp.returnCancel || setState(pos, fp.file.path)); } function setState(pos, path) { var arr = getPaths(); arr.splice(pos, 0, path); cbu.setPrefs(s, convertFromUnicode("UTF-8", arr)); setItemsToMenuPopup(); // пересоздать подменю } // Открыть или удалить реальную папку .... function openOrRemoveFolder(launch, el) { var folder = Components.Constructor("@mozilla.org/file/local;1", "nsIFile", "initWithPath")(el.path); if ( launch ) { folder.launch(); return; } // сплывающая подсказка с запросом о удалении var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); alertsService.showAlertNotification(menu.image || self.image, "Кликни чтобы удалить реальную папку!", folder.path, true, "", (s, t)=> { if ( t == 'alertclickcallback' && folder.parent !== null ) try { el.remove(); folder.remove(true); } catch(e) {}; }, ""); setTimeout(()=> alertsService.closeAlert(), 4000); }; // Получить из подменю пути + названия папок и расположение разделителей и записать в 'about:config' .... function setPaths() { var arr = [...menuPopup.children].map((el)=> el.value); cbu.setPrefs(s, convertFromUnicode("UTF-8", arr)); }; // Получить из 'about:config' массив с путями + названиями папок и расположением разделителей .... function getPaths() { try { var arr = Services.prefs.getComplexValue(s, Ci.nsISupportsString).data; } catch(e) { var arr = defaultDownFolder }; return arr.split(","); }; // Конвертировать текст в юникод .... function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-saveimage"));
Не то, чтобы очень надо, но интересно всё-таки.
Может кто знает какая программа с этим справится?
На всякий случай сделал себе кнопку,
типа пусть Firefox сам своё добро экстрактит.
Но дело не быстрое, может несколько минут распаковывать.
(obj => this._handleClick = obj.init.bind(obj))({ init() { var popup = this.append("menupopup", null, self); popup.creator = this; for(var [label, str] of Object.entries(this.data)) str ? this.append("menuitem", {label, oncommand: "parentNode.creator." + str}, popup) : this.append("menuseparator", null, popup); for(var prop of ["init", "append", "data"]) delete this[prop]; (self._handleClick = () => popup.openPopup(self, "after_start"))(); }, append(name, attrs, parent) { var node = parent.appendChild(document.createElement(name)); if (attrs) for(var attr in attrs) node.setAttribute(attr, attrs[attr]); return node; }, data: { "[gre] Unpack omni.ja": 'unpack("GreD");', "[gre] Reveal omni.ja": 'omni("GreD").reveal();', "[gre] Open omni.ja in tab": 'tab("resource://gre/");', sep1: 0, "[app] Unpack omni.ja": 'unpack("CurProcD");', "[app] Reveal omni.ja": 'omni("CurProcD").reveal();', "[app] Open omni.ja in tab": 'tab("resource://app/");', sep2: 0, "Unpack file": "pick();" }, omni(key) { var file = Services.dirsvc.get(key, Ci.nsIFile); file.append("omni.ja"); return file; }, get ZipUtils() { delete this.ZipUtils; Cu.import("resource://gre/modules/ZipUtils.jsm", this); return this.ZipUtils; }, pickFile(title, mode, callback) { var fp = makeFilePicker(); fp.init(window, title, fp[mode]); fp.open(res => res == fp.returnOK && callback(fp.file)); }, unpack(key) { this.unpackFile(this.omni(key)); }, unpackFile(file) { this.pickFile("Unpack to ...", "modeGetFolder", dir => this.ZipUtils.extractFilesAsync(file, dir).then(() => dir.reveal(), alert) ); }, pick() { this.pickFile("", "modeOpen", file => this.unpackFile(file)); }, tab(url) { var sel = gBrowser.selectedTab; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), sel._tPos + 1); } });
Отредактировано Dumby (01-09-2017 02:53:44)
Отсутствует
В теме Ищу расширения в комментарии mokujin сказано про кнопку перегрузки https://forum.mozilla-russia.org/viewtopic.php?pid=741341#p741341
для перезапуска есть\была кнопка, сохраняет вкладки при перезапуске. Но поставить настройку надобно "не загружать вкладки без запроса". шобы стартовать сразу.
Ответа не дождался на вопрос , что за кнопка. Подскажите пожалуйста
Отсутствует
Всё средствами CB
// ЗАКРЫТЬ ВСЕ окна бравзера - полный выход \ Restart с сохран. вкладок // Будут закрыты все окна CB, инспекторы и проч. окна this.onclick = function(e) { switch (e.button) { case 0: goQuitApplication(); break; case 1: Application.restart(); // СКМ break; // case 2: // gShowPopup(this); // ПКМ // break; } }; this.tooltipText = "ЛКМ - Закрыть все окна (полный выход)\n\ СКМ - Перезагрузить бравзер\n\ ------------------------------\n\ ПКМ - Меню кнопки";
Отредактировано mokujin (01-09-2017 07:48:24)
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
А где включается/выключается e10? И где проверить - включён он у меня или нет?
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%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043C%u043D%u043E%u0433%u043E%u043F%u0440%u043E%u0446%u0435%u0441%u0441%u043D%u044B%u0439%20%u0440%u0435%u0436%u0438%u043C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQCFAn4ChQN+A4UDfwOFA38DhQJ/AoUBfgGFAn4ChQN+A4UDfgOFAn4ChQB+AIUAfgCFA38DhQJ/AoUAfgCFAH0AhQqCCt82mDbfRZ9F30afRt9GoEbfOZo53yWPJd83mDffRZ9F30WfRd8+mz7fFIcU3xaIFt9IoUjfNJc03weBB98AfgDfHIsc/4bAhv+p0an/qNGo/6jSqP+Kwor/WahZ/4W/hf+p0an/qtKq/5bHlv83mTf/VKdU/6PPo/+RxpH/LZQt/wF+Af8okSj/wt7C/9nq2f/B3sH/wt/C/57Mnv9jrWP/k8aT/9nq2f/h7uH/rNOs/0yjTP+XyZf/xeDF/9Xo1f9irmL/BYAF/yiRKP+62rr/h7+H/zeXN/82lzb/LJIs/xSHFP8dih3/jMKM/6XPpf84mDj/OZk5/7DWsP9qsmr/rtWu/5DFkP8OhA7/KJEo/7fZt/9qsWr/BoEG/waBBv8FgAX/An8C/wqBCv+AvYD/m8ub/yWPJf9IoUj/qNGo/0agRv+BvoH/o8+j/xuLG/8okSj/uNm4/3W3df8aihr/GYkZ/w+FD/8AfgD/B4AH/368fv+aypr/Io4i/1SnVP+m0ab/PZw9/3G2cf+t1K3/Io4i/yiRKP+/3b//vNu8/5HFkf+Nw43/VadV/wB+AP8HgAf/frx+/5rKmv8ijiL/XKtc/6bQpv86mzr/a7Jr/7TXtP8mkCb/KJEo/8Pfw//g7eD/zePN/8bfxv94uHj/AH4A/weAB/9+vH7/msqa/yKOIv9erF7/ptCm/zqaOv9psWn/tti2/yeQJ/8okSj/vdu9/6LNov9lr2X/Yq5i/zubO/8DfwP/C4IL/368fv+aypr/Io4i/1mpWf+m0Kb/PJs8/2yzbP+y1rL/JY8l/yiRKP+42bj/cLRw/xKHEv8ShxL/DIQM/xSIFP8qkir/isKK/5rKmv8ijiL/T6RP/6fRp/9AnUD/d7h3/6rSqv8fjR//KJEo/7jZuP9vtG//D4YP/w+GD/8OhQ7/MZYx/2ewZ/+n0af/msqa/yKOIv9AnUD/qtOq/1GmUf+OxI7/ncyd/xeJF/8okSj/vty+/7LVsv+AvYD/gL2A/16sXv86mjr/lciV/9rr2v+aypr/Io4i/ymSKf+v1a//ncyd/8rjyv+FwYX/CoMK/yeQJ/++277/5e/l/9rp2v/Z6dn/ncud/ySPJP9Tp1P/utq6/5bHlv8ijSL/EYUR/328ff/P5c//y+PL/0qiSv8DfwP/FIcU/2OuY/9+vH7/fbt9/327ff9aqlr/DYQN/xqKGv9XqFf/TaNN/xGFEf8EfwT/NZg1/3e4d/9osWj/Gosa/wB+AP8BfQHfCIEI3wuCC98LggvfC4IL3wiBCN8BfgHfAn4C3weAB98HgAffAX0B3wB9AN8EgATfEoYS3wuDC98CfwLfAH4A3wB9AIUAfQCFAH0AhQB+AIUAfgCFAH0AhQB+AIUAfQCFAH0AhQB9AIUAfQCFAH0AhQB+AIUAfgCFAH4AhQB+AIUAfQCFAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20if%20%28%20%21custombuttons.confirmBox%28null%2C%20%22%u041F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%20%u0447%u0442%u043E%u0431%u044B%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u0432%u0441%u0442%u0443%u043F%u0438%u043B%u0438%20%u0432%20%u0441%u0438%u043B%u0443%3F%22%2C%20%22%u0414%u0430%22%2C%20%22%u041E%u0442%u043C%u0435%u043D%u0430%22%29%20%29%20return%3B%20%0A%20%20%20%0A%20%20%20if%20%28%20cbu.getPrefs%28s%29%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlocksEnabling%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlockedByAddons%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.force-enable%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20else%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%201%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlocksEnabling%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlockedByAddons%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.force-enable%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%20%20%20%20%20%0A%7D%3B%0A%0A%0Avar%20s%20%3D%20%22dom.ipc.processCount%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.style.filter%20%3D%20%28cbu.getPrefs%28s%29%20%3D%3D%201%29%20%3F%20%22grayscale%281%29%22%20%3A%20%22%22%3B%0A%7D%3B%20%20%20%20%20%20%20%20%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%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%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
Ну, переписывать, тестировать, конечно, не буду,
но так, кое-что подпаял. Вроде работает, на первый взгляд.
С включеным e10 не работает.
Добавлено 01-09-2017 15:15:43
Что прописать, чтобы при ПКМ по кнопке не вылезало меню CB?
Отредактировано bunda1 (01-09-2017 15:15:43)
Отсутствует
Сейчас ещё раз проверил. У меня работает.
Скриншот, конечно, ничего не доказывает, просто поверь на слово.
Тебе верю, поэтому заменил: [CB]Сохранять изображение без запроса в установленные папки | Форум Mozilla Россия
Отсутствует