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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№1365122-08-2019 20:17:36

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 241
UA: Firefox 40.0

Re: Custom Buttons

func4ptch4 пишет

Еще одна, если есть кто проверьте код на ошибки(и предыдущий), я консолем не умею пользоваться).. да и вообще знаю легкий код но не для меня.
Rld() вызывает вопросы, мне кажется там лишний код есть.

Я для себя ещё давно своял похожее:

Выделить код

Код:

this.onclick = function(e){
    if(e.button == 0){
        gClipboard.write(gURLBar.value);
        var gub=gURLBar.value,line1='   Адрес скопирован в буфер !',line=" "+line1,i=0;
        function line_a(){
        if(i++<line.length){
        gURLBar.value=line.substring (1,i)}
        setTimeout(function(){line_a()},10)}
        line_a();
        setTimeout(function(){gURLBar.value = readFromClipboard()},1500)
    }
    if(e.button == 1){
        gBrowser.selectedTab = gBrowser.addTrustedTab(readFromClipboard())
    }
    if(e.button == 2){
        if(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
        e.preventDefault();
        gBrowser.addTrustedTab(readFromClipboard())
    }
}

Отсутствует

 

№1365224-08-2019 08:44:02

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

Re: Custom Buttons

Есть кнопка для подстановки символов.
Значки расположены в 6 колонок.

скрытый текст
rqCOxT3.png

В 56 работает, конечно, а в 68 все значки в одну колонку.
Поправить можно как-то?
скрытый текст

Выделить код

Код:

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%3ESymbols%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAK8XAACvFwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wDz8/MIy8vLKvPz8wj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Aq6urSycnJ9CmpqZP////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIaGhnIAAAD9eXl5d////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD39/cGzc3NLMTExDdnZ2eRAAAA/lxcXJXExMQ3zMzMLfb29gb///8A////AP///wD///8A////AP///wD///8At7e3QRcXF+ENDQ3vBwcH9gAAAP4GBgb2DQ0N7xYWFuOwsLBE////AP///wD///8A////AP///wD///8A////ANHR0SdMTEynOjo6uh4eHtkAAAD+Gxsb2jo6OrpLS0upzc3NKv///wD///8A////AP///wD///8A////AP///wD8/PwB2dnZHpycnFc/Pz+2AAAA/jg4OLmamppY2NjYH/z8/AH///8A////AP///wD///8A////AP///wD5+fkEpaWlUDAwMMcHBwf1AAAA/gAAAP4AAAD+BgYG9i4uLsmjo6NS+fn5BP///wD///8A////AP///wD+/v4Aq6urShMTE+YHBwf1PDw8uzk5Ob0AAAD+MjIyvz09PbkHBwf1EhIS56enp07+/v4A////AP///wD///8A8PDwCkJCQrQFBQX3eHh4fuvr6xCFhYVzAAAA/nd3d3jr6+sPenp6egUFBfY+Pj647+/vDP///wD///8A////AODg4BkhISHYGhoa3djY2CD///8AhoaGcwAAAP54eHh4////ANzc3B0fHx/bICAg2+Dg4Bz///8A////AP7+/gDe3t4cHh4e3B4eHtje3t4Z9PT0B2NjY5AAAAD+W1tblPPz8wfl5eUXJiYm1R4eHt/e3t4f/v7+AP///wD+/v4Atra2OxISEucUFBTkvLy8N/r6+gKhoaFTLCwsy6GhoVb6+voDwMDANBcXF+ISEhLptbW1P/7+/gD///8A/v7+AOzs7A5ra2uGc3Nzgu/v7wz///8A+vr6A9zc3B36+voD////AO/v7wtzc3N/a2triezs7A/+/v4A////AP///wD+/v4A9PT0B/X19Qf///8A////AP///wD///8A////AP///wD///8A9fX1B/T09Aj+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%22%BD%20%u2153%20%BC%20%u2155%20%u2159%20%u215B%20%u2154%20%u2156%20%BE%20%u2157%20%u215C%20%u2158%20%u215A%20%u215D%20%u215E%22%2C%0A%20%20%20%20%22%uD83D%uDE00%20%uD83D%uDE2C%20%uD83E%uDD23%20%uD83D%uDE42%20%uD83D%uDE43%20%uD83D%uDE17%20%uD83D%uDE19%20%uD83E%uDD2A%20%uD83D%uDE1B%20%uD83E%uDD11%20%uD83E%uDD13%20%uD83E%uDDD0%20%uD83E%uDD20%20%uD83E%uDD17%20%uD83E%uDD21%20%uD83D%uDE11%20%uD83D%uDE44%20%uD83E%uDD28%20%uD83E%uDD14%20%uD83E%uDD2B%20%uD83E%uDD2D%22%2C%0A%20%20%20%20%22%uD83E%uDD2C%20%uD83D%uDE15%20%uD83D%uDE41%20%uD83D%uDE2E%20%uD83D%uDE2F%20%uD83D%uDE26%20%uD83D%uDE27%20%uD83E%uDD24%20%uD83E%uDD14%20%uD83E%uDD29%20%uD83D%uDE2C%20%uD83D%uDE0E%20%uD83E%uDD10%20%uD83E%uDD25%20%uD83D%uDE1F%20%uD83E%uDD15%20%uD83E%uDD12%20%uD83E%uDD2E%20%uD83E%uDD22%20%uD83E%uDD27%20%uD83D%uDE34%22%2C%0A%20%20%20%20%22%u20AC%20%A3%20%24%20@%20%A9%20%AE%20%u2030%20%B0%20%u2109%20%u2103%20%A7%20%AB%20%BB%20%B1%20%B5%20%u2014%20%u2039%20%u203A%20%u2260%20%D7%20%u2713%20%u2717%22%2C%0A%20%20%20%20%22%u2665%20%u23F0%20%u2614%20%u2615%20%uD83D%uDC4F%20%u2620%20%u2622%20%u2623%20%u260E%20%u2794%20%u2160%20%u2161%20%u2162%20%u2163%20%u2164%20%u2165%20%u2166%20%u2167%20%u2168%20%u2169%20%u216A%20%u216B%22%2C%0A%20%20%20%20%22%uD83D%uDC31%20%uD83D%uDC3A%20%uD83D%uDC36%20%uD83D%uDC37%20%uD83D%uDC2E%20%uD83E%uDD8A%20%uD83E%uDD80%20%uD83D%uDC0F%20%uD83D%uDC13%20%uD83D%uDC00%20%uD83C%uDF0E%20%u2600%20%uD83C%uDF24%20%u26C5%20%uD83C%uDF25%20%uD83C%uDF26%20%u2601%20%uD83C%uDF27%20%u26C8%20%uD83C%uDF29%20%u26A1%20%u262D%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%20//0%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2018px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20%3Anot%28.menu-text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%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%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20popup.firstChild%0A%20%20%20%20%20%20%20%20%20%20%20%20.boxObject.parentBox.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%0A%20%20%20%20%20%20%20%20%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%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


ПС. Нажатая кнопка отмечается темным фоном. Это выделение где-то регулируется?

Отредактировано Ultima2m (24-08-2019 09:05:27)

Отсутствует

 

№1365324-08-2019 09:12:01

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 68.0

Re: Custom Buttons

Ultima2m попробуй

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

Выделить код

Код:

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%3ESymbols%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAK8XAACvFwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wDz8/MIy8vLKvPz8wj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Aq6urSycnJ9CmpqZP////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIaGhnIAAAD9eXl5d////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD39/cGzc3NLMTExDdnZ2eRAAAA/lxcXJXExMQ3zMzMLfb29gb///8A////AP///wD///8A////AP///wD///8At7e3QRcXF+ENDQ3vBwcH9gAAAP4GBgb2DQ0N7xYWFuOwsLBE////AP///wD///8A////AP///wD///8A////ANHR0SdMTEynOjo6uh4eHtkAAAD+Gxsb2jo6OrpLS0upzc3NKv///wD///8A////AP///wD///8A////AP///wD8/PwB2dnZHpycnFc/Pz+2AAAA/jg4OLmamppY2NjYH/z8/AH///8A////AP///wD///8A////AP///wD5+fkEpaWlUDAwMMcHBwf1AAAA/gAAAP4AAAD+BgYG9i4uLsmjo6NS+fn5BP///wD///8A////AP///wD+/v4Aq6urShMTE+YHBwf1PDw8uzk5Ob0AAAD+MjIyvz09PbkHBwf1EhIS56enp07+/v4A////AP///wD///8A8PDwCkJCQrQFBQX3eHh4fuvr6xCFhYVzAAAA/nd3d3jr6+sPenp6egUFBfY+Pj647+/vDP///wD///8A////AODg4BkhISHYGhoa3djY2CD///8AhoaGcwAAAP54eHh4////ANzc3B0fHx/bICAg2+Dg4Bz///8A////AP7+/gDe3t4cHh4e3B4eHtje3t4Z9PT0B2NjY5AAAAD+W1tblPPz8wfl5eUXJiYm1R4eHt/e3t4f/v7+AP///wD+/v4Atra2OxISEucUFBTkvLy8N/r6+gKhoaFTLCwsy6GhoVb6+voDwMDANBcXF+ISEhLptbW1P/7+/gD///8A/v7+AOzs7A5ra2uGc3Nzgu/v7wz///8A+vr6A9zc3B36+voD////AO/v7wtzc3N/a2triezs7A/+/v4A////AP///wD+/v4A9PT0B/X19Qf///8A////AP///wD///8A////AP///wD///8A9fX1B/T09Aj+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%22%20%BD%20%u2153%20%BC%20%u2155%20%u2159%20%u215B%20%u2154%20%u2156%20%BE%20%u2157%20%u215C%20%u2158%20%u215A%20%u215D%20%u215E%22%2C%0A%20%20%20%20%22%20%uD83D%uDE00%20%uD83D%uDE2C%20%uD83E%uDD23%20%uD83D%uDE42%20%uD83D%uDE43%20%uD83D%uDE17%20%uD83D%uDE19%20%uD83E%uDD2A%20%uD83D%uDE1B%20%uD83E%uDD11%20%uD83E%uDD13%20%uD83E%uDDD0%20%uD83E%uDD20%20%uD83E%uDD17%20%uD83E%uDD21%20%uD83D%uDE11%20%uD83D%uDE44%20%uD83E%uDD28%20%uD83E%uDD14%20%uD83E%uDD2B%20%uD83E%uDD2D%20%22%2C%0A%20%20%20%20%22%20%uD83E%uDD2C%20%uD83D%uDE15%20%uD83D%uDE41%20%uD83D%uDE2E%20%uD83D%uDE2F%20%uD83D%uDE26%20%uD83D%uDE27%20%uD83E%uDD24%20%uD83E%uDD14%20%uD83E%uDD29%20%uD83D%uDE2C%20%uD83D%uDE0E%20%uD83E%uDD10%20%uD83E%uDD25%20%uD83D%uDE1F%20%uD83E%uDD15%20%uD83E%uDD12%20%uD83E%uDD2E%20%uD83E%uDD22%20%uD83E%uDD27%20%uD83D%uDE34%20%22%2C%0A%20%20%20%20%22%20%u20AC%20%A3%20%24%20@%20%A9%20%AE%20%u2030%20%B0%20%u2109%20%u2103%20%A7%20%AB%20%BB%20%B1%20%B5%20%u2014%20%u2039%20%u203A%20%u2260%20%D7%20%u2713%20%u2717%20%22%2C%0A%20%20%20%20%22%20%u2665%20%u23F0%20%u2614%20%u2615%20%uD83D%uDC4F%20%u2620%20%u2622%20%u2623%20%u260E%20%u2794%20%u2160%20%u2161%20%u2162%20%u2163%20%u2164%20%u2165%20%u2166%20%u2167%20%u2168%20%u2169%20%u216A%20%u216B%20%22%2C%0A%20%20%20%20%22%20%uD83D%uDC31%20%uD83D%uDC3A%20%uD83D%uDC36%20%uD83D%uDC37%20%uD83D%uDC2E%20%uD83E%uDD8A%20%uD83E%uDD80%20%uD83D%uDC0F%20%uD83D%uDC13%20%uD83D%uDC00%20%uD83C%uDF0E%20%u2600%20%uD83C%uDF24%20%u26C5%20%uD83C%uDF25%20%uD83C%uDF26%20%u2601%20%uD83C%uDF27%20%u26C8%20%uD83C%uDF29%20%u26A1%20%u262D%20%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%20//0%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2022px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20%3Anot%28.menu-text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%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%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onclick%20%3D%20function%28e%29%20%7B%20%0A%20%20%20%20if%20%28e.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20var%20profileDir1%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIProperties%29%0A%20%20%20%20%20%20%20%20%20%20%20%20.get%28%22SysD%22%2C%20Components.interfaces.nsIFile%29%0A%20%20%20%20%20%20%20%20%20%20%20.path%3B%0A%20%20%20%20%20%20%20%20var%20tracepath%20%3D%20profileDir1%20+%20%22%5C%5C..%5C%5Csystem32%5C%5Ccharmap.exe%22%3B%0A%20%20%20%20%20%20%20%20Components.Constructor%28%22@mozilla.org/file/local%3B1%22%2C%20%22nsIFile%22%2C%20%22initWithPath%22%29%28tracepath%29.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%20%3D%3D%200%29%7B%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.firstChild%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20parent%20%3D%20%22boxObject%22%20in%20menugroup%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20menugroup.boxObject.parentBox%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20menugroup.flattenedTreeParentNode%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20parent.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28parent.localName%20%3D%3D%20%22scrollbox%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parent.style.setProperty%28%22-moz-box-orient%22%2C%20%22horizontal%22%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%29%3B%0A%0Athis.tooltipText%3D%22%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432.%5Cn%5Cn%u041B%u041A%u041C%20-%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u0438%u043C%u0432%u043B%u043E%u044B%5Cn%u0421%u041A%u041C%20-%20%u0422%u0430%u0431%u043B%u0438%u0446%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%u041F%u041A%u041C%20-%20%u041C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%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%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


PS. У меня белый фон

Отредактировано Andrey_Krropotkin (24-08-2019 09:20:17)

Отсутствует

 

№1365424-08-2019 11:22:03

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

Re: Custom Buttons

Andrey_Krropotkin, спасибо, все нормально теперь.
Только пришлось лишние пробелы убрать в конце и начале строк. Но это чисто эстетически.
У меня фон такой из-за стиля, а дефолтный - белый.

Отсутствует

 

№1365524-08-2019 11:34:27

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 505
UA: Firefox 60.0

Re: Custom Buttons

Попробовал эту кнопку, что предложили Ultima2m & Andrey_Krropotkin на PM - белая полоса в пару пикселей выскакивает и всё... ни ошибок, ни глюков. Просто "не показывает".
Оказалось, что в самом коде, есть место, где это все убирается. Не понял для чего, но убрал это место(в самом начале где стиль):

Выделить код

Код:

#${_id} menuitem > :not(.menu-text) {
            display: none;
        }

и норм. заработало.   

Добавлено 24-08-2019 11:44:37
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура". Пытался вставить в сообщение: превью показывает как надо, а при Отправить - вот такая картина:
3787c5760177466a1da676aef01f3f17.png

Добавлено 24-08-2019 11:47:37
ещё раз пробую вставить   

Отредактировано mokujin (24-08-2019 11:47:37)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1365624-08-2019 14:15:56

Duche
Участник
 
Группа: Members
Зарегистрирован: 07-02-2016
Сообщений: 208
UA: Firefox 38.0

Re: Custom Buttons

Duche пишет

Добрый день. Просьба к специалистам . Есть простенькая кнопка *закрыть все вкладки* . Просьба , добавить новое действие кнопки при котором, закрытие всех вкладок приводило к открытию домашней страницы. Заранее спасибо.

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

Выделить код

Код:

/*CODE*/
[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab));   /*закрыть все вкладки*/
//gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab);   /*закрыть вкладки справа*/

Вопрос снимается , потихоньку написал сам.


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

Выделить код

Код:

/*CODE*/

 /*Закрытие всех вкладок приводит к открытию домашней страницы*/

[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab));   /*закрыть все вкладки*/
//gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab);   /*закрыть вкладки справа*/
getBrowser (). selectedTab = getBrowser (). addTab ("https://Ваша стартовая страница");  /*Закрытие всех вкладок приводит к открытию домашней страницы*/

Отредактировано Duche (24-08-2019 16:54:08)

Отсутствует

 

№1365724-08-2019 16:49:45

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

Re: Custom Buttons

mokujin пишет

Не понял для чего, но убрал это место
...
Правда, похоже здесь на форуме эти все смайлики не пускает "цензура".

Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.
Смайлики и пр. это стандартные знаки виндовс, вроде не должно никак блокироваться, но да, здесь они не отображаются.
Их можно в юникоде записать, но это слишком длинно и не наглядно.

Отредактировано Ultima2m (24-08-2019 16:53:10)

Отсутствует

 

№1365824-08-2019 17:03:08

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 505
UA: Firefox 60.0

Re: Custom Buttons

Ultima2m пишет

Если убрать этот блок, то в ФФ расстояние между колонок увеличиваются раза в 2, появляется какой-то лишний блок.

В PM если этот блок не убирать, - вообще ничего не показывается; на всю высоту popup-a, узкая полоска в пару-пикселей. А если убрать, как я выше предложил, вот так:
5a7ede1306931474.jpg

Ultima2m пишет

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

если чесна, я вообще не въезжаю как они записаны :D  прям в редакторе CB сверкают смайлы... и это безо-всяких xml в Help :rolleyes:  Впервые такое вижу.


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1365924-08-2019 18:56:01

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

mokujin
Dumby его правил вроде, тоже при первом запуске пустота(белый мини-квадрат) и в одну колонку, после второго нажатия выскакивает попап как нужно.
Кнопка выше вообще у меня никак не запускалась, и другой вариант и код убирал...

Выделить код

Код:

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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%5BNewFix%5Dforum.mozilla-russia.org/viewtopic.php%3Fpid%3D771059%23p771059%20old...%0Athis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20columns%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22%A4%20%A6%20%A7%20%A9%20%AC%20%AE%20%B0%20%B1%20%B5%20%B6%20%u2014%20%u2018%20%u2019%20%u201C%20%u201D%20%u2022%20%u2030%20%u2122%20%u2026%22%2C%0A%20%20%20%20%20%20%20%20%22%u2248%20%u2260%20%D7%20%u221A%20%u2713%20%u2714%20%u2611%20%u2705%20%u2717%20%u2039%u203A%20%AB%BB%20%u300A%u300B%20%u3014%u3015%20%u3010%u3011%22%2C%0A%20%20%20%20%20%20%20%20%22%5CuD83E%5CuDD8A%20%5CuD83D%5CuDE0E%20%u30B8%20%u30C4%20%u30C3%20%uD83D%uDC40%20%u0CA0_%u0CA0%20%u229E%22%0A%20%20%20%20%5D%3B%0A%20%20%20%20var%20css%20%3D%200%26%26%0A%20%20%20%20%60%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20menuitem%20%3E%20.menu-text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2022px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Consolas%2C%20Rockwell%2C%20Verdana%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20-moz-appearance%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%2014px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7Dmenuitem%3E%3Anot%28.menu-text%29%7Bdisplay%3Anone%3B%7D%0A%20%20%20%20%20%20%20%20%23%24%7B_id%7D%20%3E%20menupopup%20%3E%20arrowscrollbox%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20menu%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%60.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0A%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20insertText%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.insertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.insertText%20%3D%20text%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20%22createCommandParams%22%20in%20Components.utils%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Cu.createCommandParams%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%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.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%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%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%24%7BencodeURIComponent%28text.toSource%28%29%29%7D%60%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20/*%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20popup.firstChild%0A%20%20%20%20%20%20%20%20%20%20%20%20.boxObject.parentBox.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%0A%20%20%20%20%20%20%20%20%2C%20%7Bonce%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20popup.addEventListener%28%22popupshowing%22%2C%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.firstChild%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Bug%201519948%20-%20Remove%20box%20objects%20%28Firefox%20%3F%3F+%29%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20https%3A//bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1519948%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20parent%20%3D%20%22boxObject%22%20in%20menugroup%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20menugroup.boxObject.parentBox%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20menugroup.flattenedTreeParentNode%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20parent.setAttribute%28%22orient%22%2C%20%22horizontal%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Bug%201454357%20-%20Remove%20scrollbox%20binding%20%28Firefox%2066+%29%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20https%3A//bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1454357%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28parent.localName%20%3D%3D%20%22scrollbox%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parent.style.setProperty%28%22-moz-box-orient%22%2C%20%22horizontal%22%2C%20%22important%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.onauxclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20sym%20%3D%20e.target.label%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sym%20%26%26%20inserter.insert%28sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20symbols%20of%20columns%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20menugroup%20%3D%20popup.appendChild%28document.createElement%28%22menugroup%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menugroup.setAttribute%28%22orient%22%2C%20%22vertical%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20menugroup.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20if%20%28%21css%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20%22windowUtils%22%20in%20window%20%26%26%20windowUtils%20instanceof%20Ci.nsIDOMWindowUtils%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20windowUtils%20%3A%20window.QueryInterface%28Ci.nsIInterfaceRequestor%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20var%20type%20%3D%20dwu.AGENT_SHEET%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%3B%0A%20%20%20%20%20%20%20%20dwu.loadSheetUsingURIString%28url%2C%20type%29%3B%0A%20%20%20%20%20%20%20%20addDestructor%28%28%29%20%3D%3E%20dwu.removeSheetUsingURIString%28url%2C%20type%29%29%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%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

Отредактировано func4ptch4 (24-08-2019 18:57:21)

Отсутствует

 

№1366024-08-2019 19:21:20

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 505
UA: Firefox 60.0

Re: Custom Buttons

func4ptch4
да, эта кнопка сразу работае на PM. Вид имеет такой(меньше символов чем в тех двух что выше ибо ЕЯПП собс-но смайлы в здесь в unicode записаны):
103b3a1307026284.jpg

Добавлено 24-08-2019 19:22:42
... а форум эти смайлы всё равно не пропускае.. я три символа вбил. Получился токмо один.

Добавлено 24-08-2019 19:28:51
Опять же, предпросмотр как дОлжно быть показует. А при отправке , ошибки нет, но и два символа-смайла обрезаются. Обрезаются и те что здесь в юникоде. Т.е. без разницы как их вставлять. Форум будет резать.

Отредактировано mokujin (24-08-2019 19:28:51)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1366125-08-2019 21:09:47

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 60.0

Re: Custom Buttons

как сохранить ссылку: элемент страницы с другим именем? Пример: http://www.google.lv/favicon.ico как google.ico?

Нужно сохранить картинку (Base64 или URI), изменив её имя (напр: домен + имя). Нашёл расширение Save Image to Downloads, но имя оно не меняет…
можно ли добавить изменение имени и переделать расширение в код Custom Buttons, работающий на FF версии 56?

Выделить код

Код:

function downloadImage(info, tab) {
    var url = info['srcUrl'];
    var filename = url.substring(url.lastIndexOf('/')+1);
    if(chrome.downloads){
        chrome.downloads.download({ url: url, filename: filename });
    }
    else{
        function getBase64ImageData(url,filename) {
            var img = new Image();
            img.setAttribute('crossOrigin', 'anonymous');
            img.onload = function () {
                var canvas = document.createElement("canvas");
                canvas.width = this.naturalWidth;
                canvas.height = this.naturalHeight;
                var ctx = canvas.getContext("2d");
                ctx.drawImage(this, 0, 0);
                var dataURI = canvas.toDataURL("image/png");

                chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
                    var tab=tabs[0];
                    chrome.tabs.sendMessage(tab.id, {'action' : 'imagedownload',url:url,filename:filename,dataURI:dataURI},
                        function (response) {
                            if (chrome.runtime.lastError) { 
                                //console.log(chrome.runtime.lastError.message); 
                            } else { 
                                //OK
                            }
                        }
                    );                        
                } );
            };
            img.src = url;
        }
        getBase64ImageData(url,filename);        
    }
}
chrome.contextMenus.create({"title": "Save Image to Downloads…", "contexts":["image"], "onclick": downloadImage});

Отредактировано Dobrov (28-08-2019 03:40:11)

Отсутствует

 

№1366228-08-2019 20:00:54

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

Кто знает как можно добавить на "ЛКМ" длинный клик, чтобы не пострадал функционал.
Пробовал но это взрыв мозга), когда не понимаешь я пробовал обойтись без onmousedown,onmouseup.
Вот с этим хотел "this._mouseDownTime)< delay)"... но там функция вроде другая аа. короче ничего не понимаю просидел день наверно...

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

Выделить код

Код:

this.onclick=e=>
{if(e.button==0&&!e.ctrlKey)BrowserOpenAddonsMgr();                                                      //L
 if(e.button==0&& e.ctrlKey)openBrave();                                                                 //Ctrl+L
 if(e.button==1)gShowPopup(this);                                                                        //M
 if(e.button==2&& e.ctrlKey){e.preventDefault();PlacesCommandHook.showPlacesOrganizer('History');};      //Ctrl+R
 if(e.button==2&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){e.preventDefault();openPreferences();}};//R
 this.tooltipText="L:  Addons\nM: CBMenu\nR:  Preferences\nCtrl+L: Open in Brave\nCtrl+R: Bookmarks Manager (Ctrl+Shift+H)"


////////////////////////////////////////////////////////////////////
function openBrave(){var prof=Services.dirsvc.get('ProfD',Ci.nsIFile);
var process=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
prof.initWithPath(prof.path+"\\..\\..\\gBrave 0.67\\brave-portable.exe");
var uri=gBrowser.currentURI.spec;
var uri=/.рф/.test(uri)?Services.io.newURI(uri,null,null).asciiSpec:uri;
process.init(prof);process.run(false,[uri],1);}; /**/
////////////////////////////////////////////////////////////////////
//Функция открывает настройки прокси в окне ...................  
/* function openConnections(){self.win&&self.win.close();
self.win=openDialog("chrome://browser/content/preferences/connection.xul","Proxy","centerscreen");
self.win.addEventListener("load",function f(e){this.removeEventListener("load",f,true);e.target.documentElement.setAttribute("type","prefwindow");},true); //добавить атрибут "prefwindow"
gBrowser.addEventListener("click",function c(){this.removeEventListener("click",c);try{self.win.close()}catch(e){};},true);};                              //закрыть настройки прокси по клику на странице /**/
////////////////////////////////////////////////////////////////////




//forum.mozilla-russia.org/viewtopic.php?pid=772634#p772634
//{setTimeout(function(){document.getElementById("custombuttons-contextpopup").hidePopup();},0);openPreferences();}};//R
//==========================================================================================================
//{e.button&&!e.ctrlKey&&e.preventDefault()}; || BrowserOpenAddonsMgr(); || ...
//==========================================================================================================
// Proxy 04.05.18||Настройка функций кликов мыши для кнопки ...................
//this.onmousedown=e=>{if(e.button==0)self.timer=setTimeout(()=>{self.onmouseup='';openConnections();,500);                                      //длинный левый клик
//this.onmouseup  =e=>{if(e.button)return;clearTimeout(self.timer);cbu.setPrefs("network.proxy.type",cbu.getPrefs("network.proxy.type") ? 0:1);} //левый клик
//                     if(e.button==2)menuPopup.showPopup(self,-1,-1,"popup","bottomleft","topleft");};                                          //правый клик
//this.oncontextmenu=e=>e.detail==2&&!menuPopup.hidePopup() ||e.ctrlKey||!!menuPopup.openPopup(this,"after_start");
//==========================================================================================================
//    {if(e.button==0&& ((Date.now()-this._mouseDownTime)< delay) &&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)BrowserOpenAddonsMgr();};
//else if(e.button==0&&(((Date.now()-this._mouseDownTime)>=delay)||(!e.ctrlKey&& e.shiftKey&&!e.altKey&&!e.metaKey)))openPreferences();};
//==========================================================================================================
// Настройка функций кликов мыши для кнопки, учитывая долгое нажатие (c) Victor Dobrov
// пример: Middle Click: Редактировать кнопку. Колёсико над кнопкой: Масштаб
// остальные кнопки: там, где нули, ставим свои команды
//    var longPress;  //долгое нажатие
//function handleEvent(e){switch(e.type)
//  {case"mouseover": //здесь можно обновлять tooltip кнопки
//                     0
//break;case"mousedown":self.timer=setTimeout(()=>{                      //удержание
//                        if(event.target.localName=="menuitem")return;
//                       longPress=true;                                 //блокировка обычных кликов
//                        if(e.button==0){   0   } //LLong
//                   else if(e.button==2){   0   } //RLong
//                   else if(e.button==1){   0   } //MLong
//                   },500);
//
//break;case"mouseup":                  //отжатие кнопки
//    clearTimeout(self.timer);         //сброс таймера долгих нажатий
//    if(longPress) longPress=false     //выполнялась команда долгих нажатий, сброс флага и выход
//    else if(e.button==0){   0   }                            //L
//    else if(e.button==2&&!e.altKey&&!e.metaKey){   0 //R
//            e.preventDefault();}  //e.stopPropagation();
//    else if(e.button==1){custombuttons.editButton(this);}    //M//Редактировать кнопку…
//        break;case"DOMMouseScroll":   //ролик мыши над кнопкой
//        event.detail > 0 ? FullZoom.reduce() : FullZoom.enlarge();
//        break;case"contextmenu":      //ПКм+Alt или Meta откроет контекстное меню
//        if(!e.altKey&&!e.metaKey)e.preventDefault();}   //e.stopPropagation();
//};
//var this_e=["mousedown","mouseup","mouseover","contextmenu","draggesture","DOMMouseScroll"]
//                .forEach((type)=>this.addEventListener(type,handleEvent,false));
//==========================================================================================================


и прошел так год)...

Отредактировано func4ptch4 (30-08-2019 15:26:52)

Отсутствует

 

№1366302-09-2019 10:12:13

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 66.0

Re: Custom Buttons

СВ для 69 ?

Отсутствует

 

№1366402-09-2019 16:08:52

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 52.0

Re: Custom Buttons

«Merge Date»

custom_buttons-0.0.7.0.0.6-fx-paxmod.xpi
custom_buttons-0.0.7.0.0.6-fx-bootstrap.xpi

Конфигурацию, хотелось бы думать, не сломали.
Которая здесь.

Отсутствует

 

№1366502-09-2019 20:31:53

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 52.0

Re: Custom Buttons

egorsemenov06 пишет

69.0

Первую попробую, если OK — остальные сам

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

Выделить код

Код:

(ps => {
    var s = "extensions.long_left_click.timeContent";

    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 0) ? 0 : 280);

    var toggleImage = val => {
        this.icon.src = (val = ps.getIntPref(s, 0))
            ? this.image
            : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAACAElEQVQ4jaWRv2tTcRTFP0kq/hr6Y3kggRKKVERwsLOudnBxVURHcVNcXOzgHyChgiAExE0CQtFUh4RSsJJUTfBp0ZimrWJMXkjCe0jee03McQjpj4dawbPd8z3n3Pu9F/4TkT3er87Ozi5PTU3NrK+vh23bXvjX4BulUkmSlMlklMlklE6nlcvlZBjG473M5+fn5zVAPB5Xu92WJHU6HSUSCQF3/xagtbW1rYBsNqtyuSxJsixLpmlqbGxMA3E4YLYA8vk8vu9Tr1s8f5FjPBajXq9TqVQwTZNmswlw87fdAUWjUS0tLalQKEh1pFfoy9dvmpyc1MTEhAa6PwYAsiyr/4cyalffqNFoKJVK7TQLGAGIARoeHlY0GlUkEtFOXEhJKy1p1enXj+bea6XV5yJn5hQGvgMnbds+NTo6SjKZ3Bqn2+1y8Ths2FBs9rlnC5/ZsPvc04fnCO2c3zAMVatVAHzfx3Vd4sURAM7GwDgEr1d9Pnj7SVdgsRq4Qq1WuzYwO46D4zgsVmCxArdewvhhsN7luP22bwYYCizxAXDPdV08z8PzPJYbuwW9TXvX/oMBnVAoFPq0uiG71YLeJs6PwJk8Czrb9a4dqDjzE+N0GDwgDOpx7Mk0AB8vb+uO3u8SOTBE1w0GmIiDwD6gB2zCkespTlyZJohOGxYu3eEXxs9IEzjFPg4AAAAASUVORK5CYII=";
            
        this.tooltipText = `${val ? "Не в" : "В"}сё ссылки в новой`; 
    }
    toggleImage();
    ps.addObserver(s, toggleImage, false);
    addDestructor(() => ps.removeObserver(s, toggleImage));
})(Services.prefs);

Отсутствует

 

№1366602-09-2019 23:40:02

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

У меня половина кнопок слетело, в основном с popup в чем может быть дело? [firefox] 69
А в коде выше я тоже не разобрался в чем разница..) да там вроде код полностью переписан.

Отредактировано func4ptch4 (02-09-2019 23:41:02)

Отсутствует

 

№1366703-09-2019 01:21:33

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 52.0

Re: Custom Buttons

egorsemenov06 пишет

никак не разберусь с остальными кнопками

Ну вот смотри: в обоих кнопках, второй и третьей, используется выражение вида
var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");

можешь просто заменить его на
var {icon} = self;

Если хочется чего-то более академичного и обратно совместимого, тогда так.
В третьей кнопке, в последней строке, настоятельно рекомендуется заменить
gPrefService на Services.prefs

func4ptch4 пишет

половина кнопок слетело, в основном с popup

А popup, небось, создаётся так: document.createElement("menupopup")
Сто раз уже обсуждалось. Ссылка для медитации.

Отсутствует

 

№1366803-09-2019 02:31:48

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

Dumby
Смысл в медитаций если я даже понять не могу последовательность, никогда не кодил.
Я смотрю на код пытаюсь в нем разобраться без знаний, эта как научиться пользоваться ложкой но у ложки одна функция и понять как им пользоваться легче.
А тут тот код что делает а этот зачем там скобки, и везде код разный вот пример "(()=>", "(function(){}"... если бы я не сопоставил не понял бы что так можно.
Но что такое функция? или то или иное я так и не понимаю...(
https://forum.mozilla-russia.org/viewto … 59#p771059 вот этот код не пашет и
this._handleClick=()=>menuPopup.openPopup(this,"after_start"); в консоли пишет не является функцией, это с другой кнопки
Мне кажется или ток у меня отвалились на 69? а консолью пользоватся не умею, туда если заглянешь столько ошибок) аж страшно

Отредактировано func4ptch4 (03-09-2019 04:25:11)

Отсутствует

 

№1366903-09-2019 13:39:13

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 69.0

Re: Custom Buttons

Dumby
В 69 упали две главные кнопки , остальные исправил , но эти...Нет смысла в 69...

скрытый текст
// Дв. клик по панели вкладок..............
((trg, param, tab, lst = {
    handleEvent(e) {
        if (e.button || e.ctrlKey || e.shiftKey || e.altKey) return;
        this[e.type](e);
    },
    click: e => e.detail == 2 && tab && e.stopPropagation(),
    mouseup(e) {
        if (e.detail < 2) return tab = e.target;
        if (tab.nodeName == "tab" && (tab = e.target == tab))
            setTimeout(this.closeTabs, 50, gBrowser.selectedTab);
    },
    closeTabs(tab) {
        var hbuTabs = [];
        for(var t of gBrowser.visibleTabs.reverse()) if (//!t.pinned &&
            t != tab) gBrowser._hasBeforeUnload(t)
                ? hbuTabs.push(t) : gBrowser.removeTab(t, param);
        for(t of hbuTabs) gBrowser.removeTab(t, param);
    }
}) => ["mouseup", "click"].forEach(type => addEventListener(type, lst, true, trg)))(
    gBrowser.tabs[0].boxObject.parentBox, {animate: false}
);
   
// Дв.клик по вкладке............

(selectors => addEventListener("dblclick", e => {
    if (
        e.button || e.ctrlKey || e.shiftKey || e.altKey
        || !e.originalTarget.matches(selectors)
    )
        return;
    var hbuTabs = [], param = {animate: false};
    gBrowser.selectedTab = gBrowser.tabs[0];
    for(var tab of gBrowser.visibleTabs.reverse())
        //if (tab.pinned) break; else
        gBrowser._hasBeforeUnload(tab)
            ? hbuTabs.push(tab)
            : gBrowser.removeTab(tab, param);
    for(tab of hbuTabs)
        gBrowser.removeTab(tab, param);
}, false, document.getElementById("TabsToolbar") || 1))("" + [

    "#tabbrowser-tabs [class*=scrollbox]",
    "#TabsToolbar > toolbarspring",
    "#TabsToolbar",
]);


Все поправил,это никак tabbrowser.xml - выкинули,@@@@@@@@ть!

Отредактировано solombala (03-09-2019 20:17:48)

Отсутствует

 

№1367003-09-2019 21:42:44

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 69.0

Re: Custom Buttons

Dumby, в общем спасибо, разобрался оказывается у меня код был другой и не пахал а в той ссылке пашет.
Пришлось снова смотреть 2 разных кода чтобы понять в чем проблема, нашел то что ты кидал...
Но блин вот трудно пример написать, а то вот тебе разбирайся мда.

Вот не легче этот CB забросить? если никто не пользуется точнее все кто умеет кодить сидят на старых релизах и им нафиг не сдалось фиксить.
Зае..б править каждый раз, да еще без знаний эта каторга... а спрошись пошлют разбирайся какая помощь? я сам можно сказать дошел до этого. Вот не кидалбы я бы все равно сверил и пришел к тому, забросишь все просто смирятся и не будут мучить себя. Ну кроме тех кто на esr сидит или на PM. А вид типа ты нам помогаешь эта лишь показуха и тебе легче и нам, трудно 5минут было копипаст и пример привести.

Ты не обязан но и не давай надежду как говориться)... а то вон скольким надо фиксить а ты тут один, все ждут и облом если конечно они не будут париться.
Да и мини функционал столько времени не стойт, ради одной функций чуть ли не 2 дня тратишь.

Помню времена, когда жил без CB.

Отредактировано func4ptch4 (03-09-2019 21:49:20)

Отсутствует

 

№1367104-09-2019 07:33:42

Awako
Участник
 
Группа: Members
Зарегистрирован: 06-02-2012
Сообщений: 105
UA: Chrome 76.0

Re: Custom Buttons

Здравствуйте,
Помогите пожалуйста найти или адаптировать Custom Buttons под Thunderbird 68.
Пробовал сам но не получилось((

Отсутствует

 

№1367204-09-2019 13:04:33

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 52.0

Re: Custom Buttons

egorsemenov06 пишет

помочь еще и с этой кнопкой

Это типа «Активация таба мышенаведением»?
У меня нашлась какая-то из неиспользуемых, может подойдёт

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

Выделить код

Код:

(trg => {
    var id = 0, cx = 0, tab = null;
    var remX = () => cx = MousePosTracker._x;
    addEventListener("TabOpen", remX, false, trg);
    addEventListener("TabClose", remX, false, trg);
    var onTimeout = (t, x) => {
        if (t.matches(":hover") && Math.abs(x - t.screenX) < 50)
            gBrowser.selectedTab = t;
        tab = null;
    }
    addEventListener("mouseover", e => {
        if (cx == MousePosTracker._x) return;
        cx = 0;
        var t = e.target.closest("tab:not([selected])");
        if (t && t != tab)
            clearTimeout(id),
            id = setTimeout(onTimeout, 850, tab = t, t.screenX);
    }, false, trg);
})(gBrowser.tabs[0].flattenedTreeParentNode || 1);

solombala пишет

остальные исправил , но эти

Можно попробовать в первой

заменить e.target в двух местах:
в первом на e.target.closest("tab") || e.target
во втором на e.target.closest("tab")

и boxObject.parentBox на flattenedTreeParentNode

А во второй, даже не знаю, может удалить
#TabsToolbar >

Отсутствует

 

№1367304-09-2019 13:22:42

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 69.0

Re: Custom Buttons

Dumby
Не слабый подарочек...Я и раньше знал , что вы гений в этом плане, но это...Не постоje речи !  Хвала!
Српски Поздрав!

Отсутствует

 

№1367404-09-2019 15:55:03

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 316
UA: Firefox 69.0

Re: Custom Buttons

del

Отредактировано Garalf (04-09-2019 15:57:13)

Отсутствует

 

№1367504-09-2019 19:56:14

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

Re: Custom Buttons

FF обновился до 69.0 и кнопка от уважаемого bunda1 "Поиск изображения в" в контекстном меню изображений, от 31.05.2019 перестала работать.
а также в контекстном меню "затерся" текст в некоторых стандартных пунктах.
Можно ли поправить кнопку?

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

Выделить код

Код:

// Добавить подменю "Поиск изображения в" в контекстном меню изображений, от 31.05.2019. .............
(()=> {
   var copyimage = document.getElementById("context-copyimage-contents");
   var contextMenu = copyimage.parentNode;

   var array = [
      ['Google', 'data:image/png;base64,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/GMzLdsAADrvaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNS0wOS0wOFQwMzo0ODo0NiswNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMDktMDhUMDM6NDg6NDYrMDc6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTA5LTA4VDAzOjQ4OjQ2KzA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpiZTkyOTY2My03YjRmLWQyNDItYTMwNC1jMzM2ZWYyYWIwZDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjYmZjNTliZC01NWExLTExZTUtODFjMS04YjlkY2VmYTcxNjk8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1Y2I5OGU1Zi1iNmNiLWNjNGQtYmE4MS1kNjNmN2VjZWYwYzE8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NWNiOThlNWYtYjZjYi1jYzRkLWJhODEtZDYzZjdlY2VmMGMxPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE1LTA5LTA4VDAzOjQ4OjQ2KzA3OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmJlOTI5NjYzLTdiNGYtZDI0Mi1hMzA0LWMzMzZlZjJhYjBkNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0wOS0wOFQwMzo0ODo0NiswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpPjg4MjFFRjQwOUIwQzc4Mjg5QkM2Nzk4NzMzQjdCODlGPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICAgPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjMwMDAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PnhSO64AAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABMBJREFUeNrElT1sHEUUx387Nzs3vtvbW9+d44viEGPACSYCBPmg4EsgUKAhaUgBEpGgCQgKoogPCUGLoKCAkkRKR6wQqAAJAhEQmYYESIMREFlgzo5zOZy9vb3ZuR2KBYkudEwxzTy9mXn/3/s/zznnnON/W/K/Bt58y/zxkXXOGChJaDQyC7C05AEwHiXJSgcurkk52YbOH08cAM+7Wl5xtYAdOz/8AJyDOM5zKAkhAC6uKgVQD0e5yyGOrZ1sQz1MEoCJibfeGiRXr633jwS7d3/yMTg3SAdpnkMQGCMEdLu+BNi5QymXw913zc56AsYb1nY6MEiEmNwAiz9l1hPw6afnzw9T+PmXJClrSNNBAlASQwOQJMMUYDh86WXwPG/nrpMnnXNukLjcGFBqkCoF/cSXmYF9e2dmPAHNprUrHTh69O133jsOy8uLi50V6PXS1AP27NmzZ8ftsH//44898CC8f3JxsRbA56fW1kY5HD68dVs/hv2Pbt9eDWDX7qNHlAKZmczkOQghhFIQxyXRj2F2dqxiDExvSdOyhkOHnz/0yqtgjLWNBoAnMgNQj7SGz04tLFzqwq8X/lw/dw5efOHZZ+66Ez4/9eVXSsHp04uLqgG//Z4kLgetrQWQ3W5mhYB6JCVAnqdpNYCbtk9PV4H5E/Mnjh0DECKKIDPGFBdH0caN4Il62G5DZkZ5ScDvv11cXV+H5eULF5aX4bbbhMhzOHvucndqCs6cWV8vScisrwCklAWocZymRWKHr8CXWl9ag6WlS2sXV4unVSpQC7VuNWGQaH3tNFhrrSeKcw8Iw7FKPYLOirW+glbLl3/2oB/7qiRBqWEax2CtlEEAwphBai34UghfFTRnBlrNUd5sQatVCzdNQT8OgsY4DNPxRrMBo1zregRSghCg1FglCGCUC2EtTDSl1BqkLB7uKOCLYxjTUJKFBMKYkpAS4tgYgAI9OPtdp+Ny2PfI3kfuvw/KWqmJFtTCRkNrECIIkgQctVBriKJ22xiYmdlyTbsNc3PXzkQRLCz89PMfHahUpOzHEASeEAKsrQZ5DsLRTzLD3zv0k6J0X3yxtJSmkCSTG+oRPPfc0wfvuRemphqN6WkIQ2N8Cc3GeBSGcOPcls3btsFTTz780NZZ+PiTs99+swArq2HtupkC3mpQfNQTEATDVAjwpHz9deec2zSllLWFkoWxFJJoPcqNgQMHdu8qCdi2VesrMfR6SVKpgC+l7PWgFgaBtfDRR1+fWV2Fkx98/4MHCDG16ZZbiy4zBq6sD5Ki+GVdqYC3ZfrNN65ccW5tzZgggMxoXTRZmloLUkopJYzpJOl2YWKDUmkKQozyflzACtDpJIkxcKmbuzAEj7Hy5mtAiAJRY/p9AF9VqwBaGzOyUApD6WfZa69F9bm5O+6AaDyKymUol8vly11oNYXwgJKshWEIxjTGazUApapV6Pd92WpCmlYrk21oNStj1SrUakoZA1GkfClhYqLRHCRQC0qlLANrPzt18Ol/WfH1N+zdd/Cgc2laeH4tqIfWgjH9pKC8MKqhGdnLPfBlNdAajBmmHlANpBQCXG7M5V4xsArfAGOgnxQNP6a1Lkn48cf5+SPvep73f4/jvwYAdVc8ZTQlaYQAAAAASUVORK5CYII=', 'https://www.google.com/searchbyimage?&image_url='],
      ['Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url='],
      ['Bing', 'https://www.bing.com/s/a/bing_p.ico', 'http://www.bing.com/images/searchbyimage?FORM=IRSBIQ&cbir=sbi&imgurl='],
      ['Tineye', 'https://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url='],
   ];
  
   var menu = contextMenu.insertBefore(document.createElement("menu"), copyimage); 
   menu.setAttribute("label", "Поиск изображения в ...");
   menu.setAttribute("class", "menu-iconic");
   menu.setAttribute("image", array[0][1]);
   menu.onclick =e=> { e.target.nodeName == 'menu' && search(array[0][2]); setTimeout(()=> contextMenu.hidePopup(), 20) };
   addEventListener("popupshowing", ()=> menu.hidden = copyimage.hidden, true, contextMenu);
   addDestructor(()=> contextMenu.removeChild(menu));

   var menuPopup = menu.appendChild(document.createElement("menupopup"));              
   array.forEach(m=> {
      var mItem = menuPopup.appendChild(document.createElement("menuitem"));
      mItem.setAttribute("label", m[0]);       
      mItem.setAttribute("image", m[1]);
      mItem.setAttribute("class", "menuitem-iconic");
      mItem.onclick =()=> search(m[2]);
   });
   function search(finder) { gBrowser.selectedTab = gBrowser.addTrustedTab(finder + encodeURIComponent(gContextMenu.imageURL)) };
  
   var mItem = menuPopup.appendChild(document.createElement("menuitem"));
   mItem.setAttribute("label", 'Искать во всех поисковиках');       
   mItem.onclick =()=> { array.forEach(m=> {  gBrowser.selectedTab = gBrowser.addTrustedTab(m[2] + encodeURIComponent(gContextMenu.imageURL)) }) };
  
})();


(frameScript => {
    this._handleClick = () => addTab("https://www.pinterest.ru");
    this.oncontextmenu = e => e.ctrlKey || e.shiftKey || addTab("https://www.pinterest.com") || false;
    var addTab = url => {
        var tab = gBrowser.selectedTab = gBrowser.addTab(url, {
            triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
        });
        var browser = tab.linkedBrowser;
        setTimeout(function wait() {
            if(browser.currentURI.spec == "about:blank" || browser.webProgress.isLoadingDocument)
                setTimeout(wait, 25);
            else
                browser.messageManager.loadFrameScript(frameScript, false);
        }, 0);
    }
})(
    "data:,content.document.documentURI.startsWith('about:neterror')&&(wn=>wn.reload(wn.LOAD_FLAGS_BYPASS_PROXY"
    + "|wn.LOAD_FLAGS_BYPASS_CACHE))(docShell.QueryInterface(Components.interfaces.nsIWebNavigation))"
);


a2836cffadc065db17ad66b36e911733.jpeg

Отредактировано leex (04-09-2019 19:58:10)

Отсутствует

 

Board footer

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