нужна кнопка,если такая конечно есть в природе которая сворачивает лису в трей.Или расширение.
Никогда не понимал : неужели проще залогиниться, написать комментарий и ждать ответа неизвестно сколько времени, чем набрать 4 слова "Firefox minimize to tray" в любом поиске ?
MinimizeToTray
сворачивает лису
Жуть.
Отсутствует
Привет всем.
Пользуюсь агрегатором Inoreader (безальтернативно). У Иноридера на AMO есть два собственных расширения - одно из них на моем FF вовсе не работает (вкл. тест на чистом профиле), при этом обе кнопки - страшнее некуда. Эти кнопки состоят из изображения и лейбла с количеством непрочитанных фидов, причем лейбл накладывается на кнопку и динамически рендерится самим расширением в base64, т.ч. я даже не представляю, как достать оттуда числовое значение.
Основная причина недовольства - эстетическая (даже странно, что у хорошего сервиса такой убогий выход в FF). Если, кто-нибудь может предложить, как перекроить такую кнопку Стайлишем - это было бы хорошим решением. Но думаю, что проще сделать Кастомную Кнопочку, которая обращалась бы к https://www.inoreader.com/all_articles, брала оттуда (хоть бы даже из заголовка) число непрочитанных фидов и отображала его на своем лейбле. При нажатии - просто перенаправляла по адресу. (Конечно, хотелось бы еще всякий дополнительный "обвес", например, тостер с количеством новых; aPNG с троббером в момент подгрузки или логаута на сайте... но это, наверное, можно позже прикрутить.)
К сожалению, мои знания JS крайне поверхностные, поэтому это даже не просьба помощи или совета. Это просто запрос на кнопочку, которую хотелось бы получить
Если кто-то возьмется, то для реги на иноридере не требуется никаких фейсбуков - достаточно треш-мэйла.
Отсутствует
Masha
Не совсем по теме, но можно (на крайний случай) просто открыть xpi расширение, вытащить иконки (\Profiles\Firefox\extensions\inodhwnfgtr463428675drebcs@jetpack.xpi\resources\inoreader_companion\data\icon-16.png и, возможно, с другим разрешением : 32, 64), изменить их хотя бы в IcoFX (или вообще прозрачность одну оставить чтобы лишь фиды показывало) и запихать назад (удобно в total commander делать, работа с xpi как с папкой).
У меня к сожалению на 40.0.3 оно как-то нестабильно работает и исчезает после перезапуска, поэтому проверить не смогу.
Отсутствует
Мне хватает кнопки, помогите пожалуйста.
Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.
Отсутствует
Мне хватает кнопки, помогите пожалуйста.
Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.
Как я понял нужна кнопка? Тогда надо было писать, что не хватает. А если "хватает", то в чём помочь? Но если всё-таки не хватает тогда вот Custom Buttons • View topic - Bookmark to folder (single tab version)
Отсутствует
боковая панель - vertical_toolbar, не могу добавить кнопку на панель, так как она не всплывает в окне настроек firefox:
var button = this; const sideBarAutoClose = false; // true => включить авто закрытие боковой панели const autoCloseDelay = 500; // ms const showDelay = 1000; // ms const distanceShow = 2; // px const distanceHide = 180; // px const vtWidthCorrection = 160; // px ( number [ + or - ] ) const toolbarId = "vertical_toolbar"; const toolboxId = toolbarId + "_toolbox"; const sep = "\u00A0"; const firstAttributes = "\ id %id% class chromeclass-toolbar fullscreentoolbar true context toolbar-context-menu _width 20 \ customizable true flex 1 iconize large mode icons orient vertical widthcorr 0" .replace(/ /g, sep).replace(/%id%/, toolbarId); // .................................................................................................... const pn = "custombutton.verticaltoolbar.attributes"; var prefs = Application.prefs; if (!prefs.has(pn)) prefs.setValue(pn, firstAttributes); var pref = prefs.get(pn); function getAttr_pref() { return pref.value } function setAttr_pref() { pref.value = ""; Array.slice(document.getElementById(toolbarId).attributes).forEach(function(attr) { pref.value += (attr.name + sep + attr.value + sep); }); } // .................................................................................................... var browser = document.getElementById("browser"); var toolbar = document.getElementById(toolbarId); var toolbox = document.getElementById(toolboxId); if (!toolbar) { toolbox = document.createElement("toolbox"); toolbox.id = toolboxId; toolbox.palette = gNavToolbox.palette; toolbar = document.createElement("toolbar"); toolbar.style.minWidth = "20px"; browser.insertBefore(toolbox, browser.firstChild); toolbox.appendChild(toolbar); // .................................................................................................... // Thanks - http://nanto.asablo.jp/blog/2007/04/22/1459018 const style ='\ \ toolbar[orient="vertical"] {\n\ -moz-appearance: none;\n\ border-bottom: 0px none;\n\ border-top: 0px none;\n\ border-right: 1px solid rgb(170, 188, 207);\n\ background: none repeat scroll 0% 0% rgb(207, 219, 236);\n\ -image: -moz-linear-gradient(rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 27px) !important;\n\ }\n\ toolbar[orient="vertical"] > toolbarseparator,\n\ toolbar[orient="vertical"] > [id^="wrapper-separator"] {\n\ -moz-appearance: none !important;\n\ margin: 0.2em 2px;\n\ border-bottom: 1px solid ThreeDHighlight;\n\ border-top: 1px solid ThreeDShadow;\n\ height: 2px;\n\ border-left: none;\n\ border-right: none;\n\ }\n\ toolbar[orient="vertical"] > toolbarspacer,\n\ toolbar[orient="vertical"] > [id^="wrapper-spacer"] { height: 15px; }' var sspi = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURI(style) + '"'); document.insertBefore(sspi, document.documentElement); // .................................................................................................... var attr = getAttr_pref().split(sep); for (var i=0; i<(attr.length-1); i+=2) { toolbar.setAttribute(attr[i], attr[i+1]); } var currentSet = toolbar.getAttribute("currentset").split(","); currentSet.forEach(function(id){ toolbar.insertItem(id); }); } // .................................................................................................... var et = gNavToolbox.externalToolbars; var already = false; for (var i=0; i<et.length; i++) { if (et[i] == toolbar) { already = true; break } } if (!already) et[et.length] = toolbar; var delta = toolbar.getAttribute("widthcorr") - vtWidthCorrection; toolbar.setAttribute("widthcorr", vtWidthCorrection); if (delta) toolbar.setAttribute("_width", toolbar.getAttribute("_width") - delta); function lock() { var width = toolbar.getAttribute("_width"); toolbox.style.position = toolbar.hasAttribute("autohide") ? "" : "fixed"; toolbox.style.height = toolbar.style.height = browser.boxObject.height + "px"; toolbar.style.maxWidth = toolbar.style.minWidth = toolbox.style.maxWidth = toolbox.style.minWidth = width * !toolbar.collapsed + "px"; } function beforeCustomize() { toolbox.removeAttribute("style"); toolbox.removeAttribute("width"); toolbar.removeAttribute("style"); toolbar.style.minWidth = "20px"; } function customizationChange() { window.setTimeout(function() { toolbar.setAttribute("_width", toolbar.boxObject.width + vtWidthCorrection); }, 640); } function afterCustomize() { setAttr_pref(); removeListeners(); lock(); } function collapser(e) { var distance = e.screenX - browser.boxObject.screenX; if (toolbar.waiting) return; if ((distance <= distanceShow) && (toolbar.collapsed)) { if (showDelay < 1) { toolbar.collapsed = false; lock(); return; } toolbar.waiting = true; window.setTimeout(function() { if (distance >= distanceShow) { toolbar.waiting = false; return; } toolbar.collapsed = false; lock(); toolbar.waiting = false; }, showDelay); } if ((distance >= distanceHide) && (!toolbar.collapsed)) { toolbar.collapsed = true; lock(); } } function removeListeners() { gNavToolbox.removeEventListener("beforecustomization", beforeCustomize, false); gNavToolbox.removeEventListener("customizationchange", customizationChange, false); gNavToolbox.removeEventListener("aftercustomization", afterCustomize, false); } this.onclick = function(e) { if (e.button) return; var autohide = toolbar.hasAttribute("autohide"); toolbar.collapsed = autohide; if (!autohide) { browser.removeEventListener("mousemove", collapser, false); toolbar.setAttribute("autohide", "true"); } else { browser.addEventListener("mousemove", collapser, false); toolbar.removeAttribute("autohide"); } lock(); } toolbar.ondblclick = function(e) { if ( e.button || e.target.nodeName == "toolbarbutton" || e.target.nodeName == "toolbaritem" ) return; button.click(); } // .................................................................................................... if (!toolbar.hasAttribute("autohide")) { browser.addEventListener("mousemove", collapser, false); } else toolbar.setAttribute("autohide", "true"); lock(); gNavToolbox.addEventListener("beforecustomization", beforeCustomize, false); gNavToolbox.addEventListener("customizationchange", customizationChange, false); gNavToolbox.addEventListener("aftercustomization", afterCustomize, false); // .................................................................................................... var observer = { get obs() { return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService); }, init: function() { this.obs.addObserver(this, "lightweight-theme-styling-update", false); this.observe(); }, destroy: function() { try { this.obs.removeObserver(this, "lightweight-theme-styling-update"); } catch(ex) {} }, observe: function(subject, topc, data) { setTimeout(function() { var win = document.getElementById("main-window"); var bgi = window.getComputedStyle(win).backgroundImage; if (bgi == "none") { var bgc = window.getComputedStyle(win).backgroundColor; toolbar.style.backgroundColor = bgc; var brc = bgc; bgc.match(/\d+/g).forEach(function(color, i) { if (i > 2) return; brc = brc.replace(color, Math.round(color/1.5)); }); toolbar.style.borderRightColor = brc; return; } var url = bgi.replace('url("', "").replace('")', ""); const xhtml = "http://www.w3.org/1999/xhtml"; var img = document.createElementNS(xhtml, "img"); var canvas = document.createElementNS(xhtml, "canvas"); img.src = url; img.onload = function() { var width = canvas.width = img.width; var height = canvas.height = img.height; var context = canvas.getContext("2d"); context.drawImage(img, 0, 0); var arr = context.getImageData(0, 0, width, height).data; var r = 0, g = 0, b = 0; var len = arr.length; for (var i = 0; i < len; i += 4) { r += arr[i]; g += arr[i + 1]; b += arr[i + 2]; } var colors = [r, g, b], borderRightColors = []; colors.forEach(function(color, i) { var clr = Math.round(4 * color / len); colors[i] = clr; borderRightColors.push(Math.round(clr /1.5)); }); var rgb = "rgb(" + colors.join(", ") + ")"; var rgbBrc = "rgb(" + borderRightColors.join(", ") + ")"; toolbar.style.backgroundColor = rgb; toolbar.style.borderRightColor = rgbBrc; } }, 200); } }; observer.init(); function n(id) document.getElementById(id); const page = n("content"), box = n("sidebar-box"), sidebar = n("sidebar"); var tvtc, timeout; function listenMO(node, listen) { var func = node == box ? onBMO : onPMO; (listen ? addEventListener : removeEventListener) .apply(this, ["mouseover", func, false, node]); } function onPMO() { listenMO(page, false); timeout = setTimeout(hideSB, autoCloseDelay ); listenMO(box, true); } function onBMO() { listenMO(box, false); clearTimeout(timeout); listenMO(page, true); } function hideSB() { listenMO(box, false); if (box.hidden) return; var id = box.getAttribute("sidebarcommand") || "viewBookmarksSidebar"; n(id).setAttribute("checked", true); toggleSidebar(id); } function onSBL() { var time = Date.now(); listenMO(page, false); if (time - tvtc < 800) listenMO(page, true); } function onVTC(e) { var time = Date.now(); for (var node = e.target; node; node = node.parentNode) { if (node != toolbar) continue; tvtc = time; break; } } function ael(add) { [ ["DOMContentLoaded", onSBL, false, sidebar], ["click", onVTC, false, window], ["command", onVTC, false, window] ].forEach(function(args) { (add ? addEventListener : removeEventListener).apply(this, args); }); } if ( sideBarAutoClose ) ael(true); this.onDestroy = function(reason) { observer.destroy(); browser.removeEventListener("mousemove", collapser, false); if (!toolbar.hasAttribute("customizing")) removeListeners(); if (reason == "delete") pref.reset(); if (!getAttr_pref()) return; setAttr_pref(); ael(false); };
Что посоветуете?
Отсутствует
wo00do01d пишет: Мне хватает кнопки, помогите пожалуйста.Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.Как я понял нужна кнопка? Тогда надо было писать, что не хватает. А если "хватает", то в чём помочь? Но если всё-таки не хватает тогда вот Custom Buttons • View topic - Bookmark to folder (single tab version)
Пропустил "не". Спасибо за ссылку. Сам почему-то не нашел.
Отсутствует
Что посоветуете?
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%3EVT%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20vto%20%3D%20%7B%0A%20%20%20%20distanceShow%3A%202%2C%0A%20%20%20%20distanceHide%3A%2064%2C%0A%20%20%20%20showDelay%3A%20320%2C%0A%20%20%20%20color%3A%20%22lightblue%22%2C%0A%20%20%20%20fringe%3A%20%22black%22%2C%0A%20%20%20%20padding%3A%203%2C%0A%20%20%20%20name%3A%20%22VT%22%2C%0A%0A%20%20%20%20btn%3A%20this%2C%0A%20%20%20%20tcm%3A%20document.getElementById%28%22toolbar-context-menu%22%29%2C%0A%20%20%20%20ctm%3A%20document.getElementById%28%22customization-toolbar-menu%22%29%2C%0A%20%20%20%20deck%3A%20document.getElementById%28%22content-deck%22%29%2C%0A%20%20%20%20id%3A%20%22cb-vt%22%2C%0A%0A%20%20%20%20get%20cust%28%29%20gBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%2C%0A%20%20%20%20get%20xs%28%29%20%7B%0A%20%20%20%20%20%20%20%20delete%20this.xs%3B%0A%20%20%20%20%20%20%20%20return%20this.xs%20%3D%20Cc%5B%22@mozilla.org/xul/xulstore%3B1%22%5D.getService%28Ci.nsIXULStore%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20this.btn._destructors.length%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.initVT%28%29%3B%0A%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20this.btn.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.button%20%7C%7C%20vto.toggleVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20vto.toggleVT%28vt.hasOwnProperty%28%22on%22%29%20%3F%20vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%21this.xs.hasValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20this.resize%28%29%3B%0A%20%20%20%20%20%20%20%20vto.btn._destructors.push%28%7Bcontext%3A%20vto%2C%20destructor%3A%20vto.destroy%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28false%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22destructor%22%20%26%26%20this.cust%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.resize%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.addListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22aftercustomization%22%2C%20function%20ac%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20ac%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28vto.btn.id%29%20%7C%7C%20vto.destroyVT%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeWidgetFromArea%28this.btn.id%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20handleEvent%3A%20function%28e%29%20this%5Be.type%5D%28e%29%2C%0A%0A%20%20%20%20command%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.target.id%20%21%3D%20%22toggle_%22%20+%20this.id%29%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20this.toggleVT%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menuitem%20%3D%20e.target.querySelector%28%22%23toggle_%22%20+%20this.id%29%3B%0A%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.setAttribute%28%22checked%22%2C%20this.vt.on%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20%21this.vt.contains%28e.target.triggerNode%29%29%20return%3B%0A%20%20%20%20%20%20%20%20for%28var%20selector%20of%20%5B%22.customize-context-moveToPanel%22%2C%20%22.customize-context-removeFromToolbar%22%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%3D%20e.target.querySelector%28selector%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.removeAttribute%28%22disabled%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20mousemove%3A%20function%20collapser%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20distance%20%3D%20collapser.distance%20%3D%20e.screenX%20-%20document.documentElement.boxObject.screenX%3B%0A%20%20%20%20%20%20%20%20if%20%28collapser.waiting%29%20return%3B%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3C%3D%20this.distanceShow%20%26%26%20this.vt.collapsed%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this.showDelay%20%3C%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28collapser.distance%20%3E%3D%20vto.distanceShow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20this.showDelay%2C%20this%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3E%3D%20this.distanceHide%20%26%26%20%21this.vt.collapsed%29%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20true%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20setCollapser%3A%20function%28set%29%20%7B%0A%20%20%20%20%20%20%20%20set%0A%20%20%20%20%20%20%20%20%3F%20this.cust%20%7C%7C%20window.addEventListener%28%22mousemove%22%2C%20this%2C%20false%29%0A%20%20%20%20%20%20%20%20%3A%20window.removeEventListener%28%22mousemove%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20callCollapser%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.mousemove%28%7BscreenX%3A%20document.documentElement.boxObject.screenX%20+%20MousePosTracker._x%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20customizationready%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22customizationready%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.vt.on%20%26%26%20this.insertBox%28true%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20resize%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.vt.style.maxHeight%20%3D%20this.deck.boxObject.height%20+%201%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshown%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%20%20%20%20popuphidden%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%0A%20%20%20%20handlePopup%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%7C%7C%20this.vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28e.target.localName%20%21%3D%20%22menupopup%22%20%26%26%20e.target.localName%20%21%3D%20%22panel%22%29%0A%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20hasPopup%20%3D%20Array.concat%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22menupopup%22%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22panel%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.some%28function%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22state%22%20in%20popup%20%26%26%20popup.state%20%3D%3D%20%22open%22%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%22triggerNode%22%20in%20popup%20%26%26%20vto.vt.contains%28popup.triggerNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22anchorNode%22%20in%20popup%20%26%26%20popup.anchorNode%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup.anchorNode%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20vto.vt.contains%28document.getBindingParent%28popup.anchorNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.setCollapser%28%21hasPopup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20hasPopup%20%7C%7C%20vto.callCollapser%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20200%2C%20this%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20onWidgetAfterDOMChange%3A%20function%28...a%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28a%5B2%5D%20%3D%3D%20this.vt.box%29%20this.vt.hbox.style.minWidth%20%3D%20this.vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20initVT%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.id%3B%0A%20%20%20%20%20%20%20%20var%20boxId%20%3D%20id%20+%20%22-customization-target%22%3B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28id%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22toolbar%22%29%3B%0A%20%20%20%20%20%20%20%20var%20attrs%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mode%3A%20%22icons%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20iconsize%3A%20%22small%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20customizable%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20persist%3A%20%22collapsed%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20toolbarname%3A%20this.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fullscreentoolbar%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20class%3A%20%22chromeclass-toolbar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20context%3A%20%22toolbar-context-menu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20style%3A%20%22-moz-appearance%3A%20none%3B%20display%3A%20-moz-box%3B%20height%3A%20100%25%3B%20position%3A%20fixed%3B%20min-width%3A%2020px%22%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20for%28var%20attr%20in%20attrs%29%20vt.setAttribute%28attr%2C%20attrs%5Battr%5D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21vt.parentNode%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.box%20%3D%20document.createElement%28%22vbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.appendChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.id%20%3D%20boxId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.style.cssText%20%3D%20%22height%3A%20100%25%3B%20width%3A%20100%25%3B%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.customizationTarget%20%3D%20box%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.appendChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28CustomizableUI.areas.indexOf%28id%29%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.registerArea%28id%2C%20%7Blegacy%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20box.removeAttribute%28%22class%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20box.__defineGetter__%28%22localName%22%2C%20function%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Components.stack.caller.toString%28%29.indexOf%28%22custombutton.buttonConstructor%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3D%20-1%20%3F%20%22vbox%22%20%3A%20%22toolbar%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox%20%3D%20document.createElement%28%22hbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox.id%20%3D%20id%20+%20%22-hbox%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20vt.box.style.padding%20%3D%20%220%20%22%20+%20this.padding%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20vt.style.backgroundColor%20%3D%20this.color%3B%0A%20%20%20%20%20%20%20%20vt.style.borderRight%20%3D%20%221px%20solid%20%22%20+%20this.fringe%3B%0A%20%20%20%20%20%20%20%20return%20vt%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroyVT%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20CustomizableUI.unregisterArea%28vt.id%2C%20%7B%7D%29%3B%0A%20%20%20%20%20%20%20%20vt.hbox.parentNode%20%26%26%20vt.hbox.parentNode.removeChild%28vt.hbox%29%3B%0A%20%20%20%20%20%20%20%20vt.parentNode%20%26%26%20vt.parentNode.removeChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%3B%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22currentset%22%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20insertBox%3A%20function%28ins%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.hbox%3B%0A%20%20%20%20%20%20%20%20if%20%28%21ins%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.parentNode%20%26%26%20box.parentNode.removeChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.cust%20%3F%20%22customization-palette-container%22%20%3A%20%22sidebar-box%22%3B%0A%20%20%20%20%20%20%20%20var%20point%20%3D%20document.getElementById%28id%29%3B%0A%20%20%20%20%20%20%20%20point.parentNode.insertBefore%28box%2C%20point%29%3B%0A%20%20%20%20%20%20%20%20var%20mw%20%3D%20function%28%29%20box.style.minWidth%20%3D%20vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20mw%28%29%3B%20setTimeout%28mw%2C%20100%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20toggleVT%3A%20function%28on%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20if%20%28on%20%3D%3D%20undefined%29%20on%20%3D%20%21vt.on%3B%0A%20%20%20%20%20%20%20%20vt.on%20%3D%20on%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28%21on%29%3B%0A%20%20%20%20%20%20%20%20vt.collapsed%20%3D%20%21on%3B%0A%20%20%20%20%20%20%20%20this.insertBox%28on%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Avto.init%28%29%3B%0A%0A%0Afunction%20addBackground%28e%29%20%7B%0A%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20document.getElementById%28%27cb-vt%27%29%3B%0A%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20win.style.backgroundImage%3B%0A%20%20%20%20%20%20if%20%28%20image%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20toolbar.style.background%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20toolbar.style.background%20%3D%20image%3B%0A%20%20%20%20%20%20toolbar.style.backgroundSize%20%3D%20%27auto%20100%25%27%3B%0A%20%20%20%7D%2C%20500%29%3B%0A%7D%3B%0AaddBackground%28%29%3B%20%0AServices.obs.addObserver%28%20addBackground%2C%20%22lightweight-theme-styling-update%22%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20Services.obs.removeObserver%28%20addBackground%2C%20%22lightweight-theme-styling-update%22%29%20%29%3B%20%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%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
Код
Под меню заехала.
Это у меня косяк со стилями получается:
/* Порядок запуска панелей */ #PersonalToolbar {-moz-box-ordinal-group:1 !important; } #nav-bar {-moz-box-ordinal-group:2 !important; } #TabsToolbar {-moz-box-ordinal-group:3 !important; }
bunda1, спасибо большое!
P.S А значки можно можно побольше как-то сделать в этой панели?
Отредактировано fokanik (05-09-2015 11:08:07)
Отсутствует
P.S А значки можно можно побольше как-то сделать в этой панели?
Отсутствует
Подскажите как сделать.
По событию маусовер над элементом у меня создается див с position absolute.
Я хочу чтобы этот див нижним краем располагался над event.target - т. е. чуть выше на странице от того самого элемента, где происходит событие маусовер.
Мне надо прописать div.style.bottom = ... и тут я не знаю что задать, чтобы учитывалась и прокрутка страницы.
Отсутствует
Подскажите как сделать.
По событию маусовер над элементом у меня создается див с position absolute.
Я хочу чтобы этот див нижним краем располагался над event.target - т. е. чуть выше на странице от того самого элемента, где происходит событие маусовер.
Мне надо прописать div.style.bottom = ... и тут я не знаю что задать, чтобы учитывалась и прокрутка страницы.
Может посмотри Увеличивать размеры изображений из контекстного меню на странице там есть что то подобное.
Отсутствует
Может посмотри Увеличивать размеры изображений из контекстного меню на странице там есть что то подобное.
Посмотрел. Но разобраться не смог Мне бы конкретный код.
Поскольку создаваемый див будет 400 x 400 px я бы хотел чтобы:
● если див создается в верхней части страницы, то div.style.top был бы на 10 px выше места события. т. е. див в основном будет ниже event.target - чтобы он не заехал в верхнюю невидимую часть экрана.
● если див создается в нижней части страницы, то div.style.bottom был бы на 10 px ниже места события, див при этом будет смотреть вверх, опять же, чтобы он не заехал за нижнюю часть экрана.
Короче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.
Отсутствует
А новая кнопка VT - бледная в SeaMonkey.
Может есть решение какое?
Отредактировано fokanik (06-09-2015 21:57:29)
Отсутствует
Короче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.
Так может лучше исползовать tooltip который вроде всегда виден полностью.
Отредактировано bunda1 (06-09-2015 21:36:07)
Отсутствует
hartumov пишетКороче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.
Так может лучше исползовать tooltip который вроде всегда виден полностью.
Я с этого и начал. Но в тултипе очень мелкий шрифт и кроме как plain text туда ничего не вставишь.
Так что системный tooltip - не самый лучший выход.
Я то сам див с html содержимым сделал, а с позиционированием его не получается. Я хотел бы чтоб див появлялся рядом с местом события (маусовер) и чтоб был всегда виден как системный тултип.
Отсутствует
Я с этого и начал. Но в тултипе очень мелкий шрифт и кроме как plain text туда ничего не вставишь.
Ошибаешься, можно менять шрифт, цвет и даже добавить изображения, пример:
// всплывающая подсказка рядом с выделенным текстом ... function showTooltip() { var tooltip = gBrowser.appendChild( document.createElement("tooltip") ); tooltip.style.cssText = "color: red !important; font-weight: bold !important; font-size: 24px !important; -moz-box-orient: horizontal; text-align: center;"; var image = tooltip.appendChild( document.createElement("image") ); image.setAttribute("src", "http://www.google.lv/images/branding/product/ico/googleg_lodp.ico"); var label = tooltip.appendChild( document.createElement("label") ); label.setAttribute("value", "Установлен"); var focused = document.commandDispatcher.focusedWindow; var selection = focused.getSelection().getRangeAt(0).getBoundingClientRect(); var posX = focused.mozInnerScreenX + selection.left; var posY = focused.mozInnerScreenY + selection.bottom - 5; tooltip.showPopup( gBrowser, posX, posY ); setTimeout(function() { gBrowser.removeChild( tooltip ) }, 2000 ); }; showTooltip();
Отредактировано bunda1 (06-09-2015 23:06:33)
Отсутствует
А есть такая кнопка, после полного видимого заполнения панели закладок ссылками и папками - перемещать "правые" (не помещающиеся в видимую часть панели закладки и папки) элементы в какую-то папку "ИКС"?
Отредактировано fokanik (07-09-2015 18:39:18)
Отсутствует
Кнопка "Разделитель", в инициализацию:
//Ширину разделителя регулируем количеством пробелов в названии :) this.setAttribute("context", ""); this.tooltipText=""; //Скрываем всплывающую подсказку this.onclick = function(e) { if ( e.button == 0 ) onTitlebarMaxClick(); // Свернуть/развернуть - Лкм. if ( e.button == 1 ) BrowserFullScreen(); // Полный экран - Скм. if ( e.button == 2 ){ // Минимизировать - Пкм. if(e.ctrlKey || e.shiftKey) {gShowPopup(this); return;} window.minimize();} }
Отредактировано fokanik (07-09-2015 22:26:16)
Отсутствует
пользовалась кнопкой в виде латинской буквы T для перевода отдельных слов или фразы, особенно часто при переводе отдельных китайских иероглифов, так как китайской всей фразой переводчики переводят крайне не корректно
установила браузер на другой компьютер но при синхронизации эта кнопка исчезла
скачала дополнение Google Translator for Firefox version 2.1.0.5.1 но кнопка так и не появилась
помогите разобраться
Отсутствует