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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№1375116-09-2019 08:49:45

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

Re: Custom Buttons

Dumby
Какую версию СВ надо в 68? Работа с вн. редактором AkelPad парит. Окно редактора двойное. Копировать -изменить? -нет, а окно остается.

Отсутствует

 

№1375216-09-2019 10:07:52

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

Re: Custom Buttons

Stkvsky пишет

вы бы не могли пожалуйста, сделать такую кнопку

Не знаю, описание ведь не предоставлено.
«Удаление вкладки из закладок» это какая-то конкретная процедура, или что?
И не указано для какой версии Firefox.

solombala пишет

Какую версию СВ надо в 68?

Лучше 0.0.7.0.0.6, потому что в предыдущей версии обнаружился косяк с кнопками [type="menu"].
В распакованом виде было не видно, а в запакованом — увы.

Насчёт внешнего редактора, без подробного STR я не смогу понять о чём речь.
И, заодно, про button.dialog-button и «Ни hover ни active - не работают в 69...?»:
у меня работает, если как AGENT_SHEET, так что можешь попробовать
разместить стиль там же, где другие подобные, типа как для scrollbar'ов.

Отсутствует

 

№1375316-09-2019 10:17:51

Quartz1t
Участник
 
Группа: Members
Зарегистрирован: 25-11-2013
Сообщений: 111
UA: Firefox 60.0

Re: Custom Buttons

Dumby, а ссылочку на 0.0.7.0.0.6 можно?

Отсутствует

 

№1375416-09-2019 10:41:36

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

Re: Custom Buttons

Dumby
Черт его знает. Любая СВ в 68 ,как вн. ред Akel , так сразу два окна редактора выскакивает. Это только в 68 и только с Akel//
Мистика  какая-то. За 69 с AGENT_SHEET вообще не врубаюсь. Какай скролл ?

Отсутствует

 

№1375516-09-2019 11:05:50

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

Re: Custom Buttons

solombala  у меня AkelPad и ничего подобного нет как и на 68, так и на 69 как с 0.0.7.0.0.6  так и ранними версиями

Quartz1t 547 станица внизу

Dumby у меня появились однотипные ошибки на 69
1. В однопроцессорном режиме запускается, а в многопроцессорном нет - окна диалога например :

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

Выделить код

Код:

/*CODE*/
var btn = this, br = gBrowser;
var img2 = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAABwWjpocFs8zHFbPP9xWzz/cVs8/3FbPP9xWzz/cVs8/3FbPP9xWzz/cVs8/3FbPP9xWzz/cVs8/3BbPMxwWjpodWBB4bWwqv/o6Oj/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+rq6v+1sKr/dWBB4XtlR//f39//6Ojo/8e7q/+0oIf/po1t/6aNbf+mjW3/po1t/6aNbf+mjW3/po1t/+rq6v/s7Oz/39/f/3tlR/+Ba07/29vb/+fn5//f39//3Nzc/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/l5eX/5+fn/9vb2/+Ba07/h3FV/9bW1v/k5OT/5OTk/+Dg4P+bhGb/k3hX/5N4WP+TeFf/m4Rm/+Dg4P+WfF3/rp2H/+Dg4P/U1NT/h3FV/454XP/Z2dn/5+fn/+Pj4//j4+P/ysK3/8nCtv/Jwrb/xr2w/8e9sP/d29j/2NjY/5d9Xv+vnon/1dXV/454XP+UgGP/3Nzc/+rq6v/m5ub/lHlY/5d8XP+dhmf/lXpa/5R5WP+dhmf/uqyb/+bm5v+UeVj/r56I/9jY2P+UgGP/m4dr/97e3v/t7e3/6enp/93d3f/d3d3/3t7e/yOC5P+AsOD/3t7e/+Pj4/+lkHX/rp6J/+Li4v/c3Nz/m4dr/6KNc//h4eH/8PDw//Dw8P/w8PD/7Ozs/zKK6f/h4eH/C3To/+zs7P/s7Oz/4+Pj/+bm5v/u7u7/4eHh/6KNc/+olHr/5OTk//Pz8//z8/P/8/Pz//Dw8P8Seen/8PDw/xJ56f8Seen/8PDw//Dw8P/z8/P/8/Pz/+Tk5P+olHr/r5uC/+fn5//29vb/9vb2//b29v/z8/P/lL3o/xl96f/n5+f/grTo/yWE6v/z8/P/9vb2//b29v/n5+f/r5uC/7Whif/p6en/+fn5//n5+f/5+fn/+fn5//Dw8P+JuOr/JYXr/+/v7/+60ev/9fX1//n5+f/5+fn/6enp/7Whif+6p5D/7Ozs//v7+//7+/v/+/v7//v7+//6+vr/8/Pz/4y77f83juz/9fX1//v7+//7+/v/+/v7/+zs7P+6p5D/v6yW/+3t7f/8/Pz//f39//39/f/9/f3//f39//z8/P/09PT/xNnw//r6+v/9/f3//f39//z8/P/t7e3/v6yW/8Owm8ze2tX/9fX1//f39//39/f/9/f3//f39//39/f/9/f3//T09P/39/f/9/f3//f39//19fX/3trV/8Owm8zGsp9oyLWezMi1n//ItZ//yLWf/8i1n//ItZ//yLWf/8i1n//ItZ//yLWf/8i1n//ItZ//yLWf/8i1nszGsp9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; 
var img1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmlJREFUeNpsU0toU0EUPfPysx/tTxuDH9SCWhUDooIbd7oRUUTMouqi2iIoCO6lceHWhegy4EJFinWjrlQUpVm0IIoFpVDEIthm0dpikpf3ZuZ6Z94nrXhhMjM3c8895977BBHB2PznK8WPtDgyWH5q77cPH8PpdXuhpQT4ifR9u5sfJb1bmw6VivahATDrxcRZ2njfoaMv+2j7mLDn93MPiNRMvGbL18L9IpF8h9/TN+EYkMffSiOXJ5+hkD+PdqcLpICWHOHc2CC+LEyA/K+cKQMnlQHJX8wqYG3MAJy88Wa4OLDvEqAEOpJd0LxHIMdHBziowSwVlF8D6QaicK01krw/JynwcKoEwZczewroTvZirlKJs5CqQ5CG8pb57FnJUA0LYCXMX5fibd+p8LWDDemcPZbzQyjvH+Ki1TlIciElA7ghwLKV4kRZstt2sANWRjYTAGzuP2hXZFpJ/GsxgGJ0ox1aoFWsDXyyxqCs26+ydmagFN/rRjymJ1898bzGzmQE0HCZpmk5A0RFIv8Pn0WYPsiu6t/Rsj6PauVTwffTSzGAGZhUG2F06hEc9ibS7OPMNp6ErYFlKavo7MkhmTqCxZ/jwzGA9Hx82H2BZSw1NTN9Gx8ycHkajU/7M+jInsDC7DiaEmo1bNl1AMr9ASFgqVu9MCTIzoGUimXVAnnaN0PdBBDCCYbEtMk6wkpQwIG0sn0PQIUF4GsTwLSIFKNqF6DVrQq+IWVrQDxAYQC/1SsYOI4pOxKZrfifiUSbDUisif7XlpGIPufXd/uvdvZm760M0no1FZcnrzUdjw7au3vu/BVgAFLXeuTxhTXVAAAAAElFTkSuQmCC";
var trigger, trigger1, dialog, drives, count;
var icon1 = "data:image/png;base64,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";
var icon2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACa0lEQVR42oWTXUhTYRjH/+/50H1mZ/kRs5WstTKCcsFiTIVYUETUneAupEAqwSuD2obJokS78WawLrppu+uiSymCwFr2ceEcQoWM/MjK2odzNfd1ds7pbKCo2Py/HHh5nuf9v7/znOcQrKvP0sY1NPgMXJOdpiiRgCQAIsqZ2qxY4BZXlmdyyfR1+Kc+YpPIxu72mYtWm328y3IOGqpWzpCNgoV8AoHpF8XU1+/OnOvls50NZOked30622ZrtXBGoqBYSPLKCEWE5qbzodDEg+L9N8PYJrI9oAt0xy+1ddaf0BhQhIDX32YwEZp4wt99dQ07iGiGL3hMzS23GImUqQWVsYkz6wyMSdWIoiTg7coslheW0sKffOlHfDm46hof2GJwyO+MOh1XTJxCAwZU5SmKJZQksVKQD06hmoje1zVrs9nMsZ+/0cDppMONBqKU3z/B/0V07Rfs4wX09PTseDgYDILU3HP0quu0/alYclS9V9t92ma9rFGpEUnNI5ZJYTBytGJQLt6s9RiBy27B6GS4Eh3q9NWdaunnlRSy2SzAUvCGj1Un2BIZ7PDjYF0f9inl8WHAsCwG3xt3IXC390KSwhUKT/sjGPbchF4LSlkLDa3AQEi/C8GIY46oaiRpNbcENXsEzVo9WBpE/qw1NAP3jLk6ARk7/5k9vr+1lC1ALPCQaYD51HNk+AhoAi/jcFcloIc6MqL1gFqi5HbwAhCXmxdNXsXDd4FykdfrlaoSUHccomivJ2AZ+UIKdLYE/kvsqZRcu4GxD+l1g//3wNMZhYo2leeYVH4OApEX0ijwJzEyuVg2qDaJ/wCoeQGVklbGmAAAAABJRU5ErkJggg==";
var icon3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH1wcREBAg9OD7NAAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAH6SURBVHjaxVNBaxNBFP4mGRNp06bSaGu9qXhRLOSQX6Dg0d48SMWC4Mmbv8AfYA7Sgp6UgteCF29CKahBsKKWglgam4rRxGxiks3u7Mz6zZIlSVHRk7N8vLcz7/vemzczwP8eorSCgtLJJeXpUGtMBQHgK5RptxbuYJUx5o8CL5bx+OzCkyuZ2cLIwtPihbVW9a1GiCyFQyusFD4S2zfv4x5DtI2TAphOZk8zbXFE4NKt5ctInDmY8OLd6zNrtI+IlhURG0Xs55dezZXXF9Gq7CA9NQvNbAH19W/wo+6gWXeaN1aQkybEXLv2Bb36Z+SvfUAynYLgB9Y+GLEv6Sl4HTdcvX0yy4kZqdkit1nFWC4Pme4ydvMXxNiOwwTfIVP5OCBlK0Cv8Y4C5xnXYM+bB0ixTwjWHwpUdzbh+ijZSWlYQefrcxwrLJJcIZxRAWM33qP1KTCOwJ9ErbyLno8trvqRgOrsITV5ik6pT2IXvbZdINmjVr8CmYMx09h7/8wKMBtUtIWgu4/DE8e5lxob4pLsDkhhvxJrjYfE2Am065/Et1ZUQRAJTBxJIDQJZrgKZDiRwYA03AlxCF1Ho92oYGM7ElCS5/qmVjXzLx+cg71tMex5D/8Pw+ng4etd2GYpER0ucJRI26v9l2/Ivg82CI2YIP+BPCyifwI91AzKs/qQkQAAAABJRU5ErkJggg==";
var icon4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC5UlEQVR4AWIgFvxfaXzz/0tNC5wKbgpHCINoS9V+NW2TpVNlnPfc5Q0CsEkOwHItURRd3bfHeBh927Zt27Zt27Zt2/6xbdvJWFcnj8Xsqo1C42Ccw/mLnfNeeH2R5PcRWbG/J7+vcbC8GE3QAwPQP3L1DsnwlAcOWOv+waVg5F4dMdbu2Un8GlwX0nHO3vazHDoOGC07b/aHBEb8CLVj6MXw1HmvLVzvAJm89V7S/9B9ZdGV68gD11wtXLZcuNuW/kN2FckfIFI4usOPFn/5/iITEqcC6J+514St8oGpQIFNkovYIzORXNtinFqMtSOLwFJ8u+BQ8GaC73fQQ/lh3OSGnwDokGlc2GrVN7KUB6EOht0O+jyg3mHM2oegFTw1+UpmLbfBng6uB56L0SktY7IPGaPdcy3toZSA6WHQ46PQnlw//gH8lAtWis2//JvZh+9Btr0AZmPwBJHYZUZgNQEAXE8zc0GafrVdeWHFqdTDFqgKEKPhtXHmH0/z567nQ6YOwY1QEmyzzmLfO1LRZbF4sMw8FUJ8xZ+lrRhd3gwU4AtuE6RappavcdPun4LTBBtwLWVsLzSy6YYPdf0AKa9B3FR5eLtP2d8fQm7tEuGsx3V97qXvzDXZev3hEADyAAUQ3zXAwIqdOLTjEhJ2HQlAOZ9g69XmsrCU5LVhR7F0oZAsTOS+8z+CAlADxAWKX2vgg0K9zS3bCTw7gCobwhXNp/225+5PjqfvoAxru/34+pzn2CM1HfJAHSh7QrlxJQAdu/DIuNazpbje3iKbbS1y4PoiZ2dFboqJPKFFXkXk3Q6+38O3EP/JUAlAAwB3L6qs8cPyWoa6HYXFHVwQg/lxmJPoyGFYoiEPrFAdNL5fCJ4BoIDeX5hkuHD/2i0zb8vGFutIsAbpOrQ1oMWGmEPNMYgEh8WilUPVy8UVrAp9Q9dtOCNzwtPFdfee4G6yXVO23kLslbNU/v3cSvHRZVOdcnT1ADucXxaSvokQAAAAAElFTkSuQmCC";
var icon5 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjenhJ3MAAACvklEQVQ4T2NgQAL///9nA2LpusbW2PDoxKYFi5baA/k8yGrwsoGKRexdvJbxiyv8F5XX+C8kLv/21avXyqQYIKmmbXRFxdD6v7aVy39+Udnvd+/e1wIazIjTEKAkBxBLAbEyEBv1TZzaIKGo+V9O0+h/YmrWbJAYEMsBsRJUHSeKYSA/axqYX1fTNbkHwkoaBs90gLYbOfr8B/Ed3Hz2mtu6HIPK3waql4EZAGSzMAAJDVll7a9mroH/QdjCI/i/nX80GIP4+jZu/w3tPcFsBXX990D1akgGcIAM0JZT0/1r4R7438Y77L9zSAJWbOcb+V/T0OIFyEKot7mBNBfIAAWgFz7auXhdMLZyeGBs5/7fIzIFAzsFxfw3NLd7BlTv0DNhSkxyRm77pStXdUAG8CxdsRoUUKpfv35zMrV1eeYRnvTfLy4LBfvGZv7XMrL8nZZTuFTbyPKnmaPXfzefoFMgA0BOkYWGtJm7f+g5j7CE/8HJeRjYLzbjv5138H8QHRCf9d/YxukjyAB5c3u3r3GpWdvTc4vWmtg4/41IL/ofkVGMgZ39w/+D5B19Qv57RyT9d3D3ewaOBVtX788+kcn/vcIT/kdmlPz3BtKeoXH/QQbF5FSAcVRW2X9rF6/vnz59jqxubJ3oFxZ9pXfStEyQAaqeQeHPorNK/ycWVP+3c/f9m1tSsb6kqn65q2/w2+jMEqB4zf/4vKr/Dp7+34HqDYBYEIjFgZgXZIBiWHzKFZDCSKCNUckZZ4BipkCs09DWNdc/JuV/SkkDGDv5BP9/8OixBVCOCZ4aQSYlZxccDI5P/x+WnPPfJyzm7eOnz0BxLRmekHodJA7CfpFAbwVH/Z+9YIkfOAUipSbOdZu22ta3dfWV1zevyiwsW/Hq9RtQ3uDrnTw9ASg+qbGjZ8rM+YsKt+7c4wx1PtwFACct2zZrCHmoAAAAAElFTkSuQmCC";

function jarLoaded(e) {        var val = gURLBar.value;
    if(val.search(/(file|jar):/) == 0 && val.search(/\.(ja|jar|xpi|zip)$/i) > -1) loadURI("jar:" + val + "!/");
}
function jarClicked(e) {    if(e.button == 0) {
    var tabUrl = gURLBar.value;
    if(tabUrl.search(/(file|jar):/) == 0 && tabUrl.search(/\/$/) > -1 || tabUrl.search(/view-source:/) == 0) {
        var node = e.target.href;
        if(node && node.search(/\.(exe|dll|sqlite|sqlite-shm|sqlite-wal)$/i) == -1) {
            if(tabUrl.search(/view-source:/) == 0 &&
                 node.search(/view-source:/) == 0    || node.search(/\.(ja|jar|xpi|zip)$/i) > -1) {
                e.preventDefault();    e.stopPropagation();    br.selectedTab = br.addTab(node);
            } else if(node.search(/\/$/) == -1) {
                e.preventDefault();    e.stopPropagation();    br.selectedTab = br.addTab("view-source:" + un(node));
}}}}}


function intf(drives, count) {    
    var data = '<?xml version="1.0"?>';
    data += '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
    data += '<window title="' + btn.label + '" onload="self.load()" xmlns="' + xulns + '">';
    data +=   '<keyset>';
    data +=     '<key keycode="VK_ESCAPE" oncommand="close()"/>';
    data +=   '</keyset>';
    data +=   '<vbox flex="1">';
    data +=     '<richlistbox id="listbox" flex="1" >';
    data +=       '<listcols>';
    data +=         '<listcol/>';
    data +=         '<listcol flex="1" />';
    data +=       '</listcols>';
    data +=     '</richlistbox>';
    data +=     '<hbox>';
    data +=       '<button image="' + icon2 + '" label=" Add-on" oncommand="self.addon(event)" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=       '<button image="' + img2 + '" label=" 1 omni.ja" oncommand="self.omni(event)" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=       '<button image="' + img2 + '" label=" 2 omni.ja" oncommand="self.omni1(event)" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=       '<button image="' + icon4 + '" label=" Firefox" oncommand="self.folder(event,' + "'GreD'" + ')" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=       '<button image="' + icon3 + '" label=" Профиль" oncommand="self.folder(event,' + "'ProfD'" + ')" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=       '<button label="Закрыть" oncommand="self.close()"/>';
    data +=     '</hbox>';
    data +=     '<hbox>';
    for(i = 0; i < count; i++)    data += '<button image="' + icon1 + '" label="   ' + drives[i] + '" oncommand="self.mydrives(event,' +
                        "'" + drives[i] + "'" + ')" tooltiptext="Ctrl+ = Без закрытия диалога"/>';
    data +=     '</hbox>';        
    data +=   '</vbox>';
    data += '</window>';
    return data.replace(/self/g, "opener.document.getElementById(&quot;" + self.id + "&quot;)");
}
this.load = function() {
    if(!("AddonManager" in window))
            Components.utils.import("resource://gre/modules/AddonManager.jsm");
            
    if(!("Services" in window))
            Components.utils.import("resource://gre/modules/Services.jsm");
        
    var then, promise = AddonManager.getAddonsByTypes(["extension"], then = function(addons) {
        var list = new Array();
        addons.forEach( function(addon) { list.push(addon); });
        var options = {
        addonTypes: ["extension"]
        };
        
        function key(addon) {
                return options.addonTypes.indexOf(["extension"])
                + "\n" + addon.name.toLowerCase();
            }    
        
        list.sort( function(a, b){
                        var ka = key(a);
                var kb = key(b);
                return ka == kb ? 0 : ka < kb ? -1 : 1;
                  
            });
    var {document} = dialog; 
  for(var addon of list){
          var item = document.createXULElement("richlistitem");
          item.setAttribute("selected", "false");
          var cell1 = document.createXULElement("vbox");
          cell1.setAttribute("class", "icon-container");
          item.appendChild(cell1);
          var cell2 = document.createXULElement("image");
          cell2.setAttribute("anoid", "icon");
          cell2.setAttribute("class", "icon");
          cell2.setAttribute("src", addon.iconURL);
          if (addon.iconURL == null) cell2.setAttribute("src", icon5);
          cell2.style.height="16px";
          cell2.style.width="16px";
          cell1.appendChild(cell2);
          var cell = document.createXULElement("label");
          cell.setAttribute("value", addon.name);
          cell.style.height="16px";
          item.appendChild(cell);
          var cell = document.createXULElement("label");
          cell.setAttribute("value", addon.version);
          item.appendChild(cell);
          var box = dialog.document.getElementById("listbox");
          box.appendChild(item).addon = addon;
          box.focus();
           }    
            });
        promise && typeof promise.then == "function" && promise.then(then, Components.utils.reportError); // Firefox 61+    

}

this.addon = e => {
    var item1 = dialog.document.querySelector("richlistitem[selected]");
    var uri = item1.addon.getResourceURI();
    if (uri.schemeIs("jar"))
        uri = uri.spec
    else {
        var file = uri.QueryInterface(Ci.nsIFileURL).file;
        uri = file.isDirectory() ? uri.spec : "jar:" + uri.spec + "!/";
    }
    if (!e.ctrlKey) {
        dialog.close();
        dialog = null;
    }
    br.selectedTab = br.addTrustedTab(uri);
}

this.omni1 = function(e) {
    var profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
    .getService(Components.interfaces.nsIProperties)
   .get("GreD", Components.interfaces.nsIFile)
    .path;
    var file = profileDir + "\\browser\\omni.ja";
    var vert="jar:" + "file:///" + file + "!/";
    br.selectedTab = br.addTrustedTab(vert);
    if(!e.ctrlKey) dialog.close();
}
this.omni = function(e) {
    var file = Services.dirsvc.get("GreD", Ci.nsIFile);
    file.append("omni.ja");
    var uri = Services.io.newFileURI(file);
    br.selectedTab = br.addTrustedTab("jar:" + uri.spec + "!/");
    if(!e.ctrlKey) dialog.close();
}
this.folder = function(e, shortcut) {
    var uri = Services.io.newFileURI(Services.dirsvc.get(shortcut, Ci.nsIFile));
    br.selectedTab = br.addTrustedTab(uri.spec);
    if(!e.ctrlKey) dialog.close();
}
this.mydrives = function(e, letter) {    
        br.selectedTab = br.addTrustedTab("file:///" + letter + "/");
    if(!e.ctrlKey) dialog.close();
}
this.close = function() {    dialog.close();
}

Cu.import("resource://gre/modules/FileUtils.jsm");    
var root = new FileUtils.File("\\\\.");
var drivesEnum = root.directoryEntries;            
drives = [];
while (drivesEnum.hasMoreElements()) { drives.push(drivesEnum.getNext().QueryInterface(Ci.nsIFile).path); }
count = drives.length;
var url = "data:application/vnd.mozilla.xul+xml;text/plain," + encodeURIComponent(intf(drives, count));
var feature = "chrome,centerscreen,width=580,height=410,alwaysRaised";
dialog = window.openDialog(url, "", feature);    

this.onDestroy = function(reason) {
    if(reason == "update" || reason == "delete") {
        br.removeEventListener("click", jarClicked, false);
        br.tabContainer.removeEventListener("TabSelect", jarLoaded, false);
        if(reason == "delete") try { this.PS.clearUserPref(unzp); } catch (e) {}
}}


Испавить можно или в многопроессоном уже нет места диалогоывм окнам?

2. Ошибки связанные с nsIWebNavigation.loadURI опять же только для многопроцессорного режима, например:"Открыть в боковой панели" (если это внутренние ресурсы допустим about:config, то окрывает, если интернет-страницы - то нет)

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

Выделить код

Код:

// Добавить новый пункт "Открыть в боковой панели" в контекстное меню вкладки ....................
(id => {
    var label = "CB Site Loader";
    var url = "chrome://browser/content/webext-panels.xul?" + id;
    var icon = "chrome://devtools/skin/images/dock-side-left.svg";
    var defaultURL = "data:text/html;charset=utf-8,<center><h1>Заглушка</h1></center>";
    var currentURL;

    var e = (name, attrs, node, append) => {
        var elm = document.createXULElement(name);
        for(var a in attrs) elm.setAttribute(a, attrs[a]);
        append ? node.append(elm) : node.before(elm);
        return elm;
    }
    var menuitem = e("menuitem", {
        label,
        type: "checkbox",
        id: "menu_CBSiteLoader",
        oncommand: "handleCommand1();",
    }, document.getElementById("viewSidebarMenu"), true);


        handleCommand1 = () => {
        if (!menuitem.hasAttribute("checked")) {
            `SidebarUI.toggle("${id}");`;
            menuitem.setAttribute("checked", true);
        }
        loadURL(gBrowser.currentURI.spec);
    }
    
    var btn = e("toolbarbutton", {
        label,
        type: "checkbox",
        oncommand: "handleCommand();",
        id: "sidebar-switcher-CBSidebarLoader",
        class: "subviewbutton subviewbutton-iconic"
    }, document.querySelector('toolbarbutton[id^="sidebar-switcher-"] + toolbarseparator'));

    SidebarUI.sidebars.set(id, {
        url,
        title: label,
        buttonId: btn.id,
        menuId: menuitem.id,
    });
    var css = `\
        #${btn.id} > .toolbarbutton-icon,
        #sidebar-box[sidebarcommand="${id}"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
            width: 16px;
            height: 16px;
            opacity: 0.8;
            fill: currentColor;
            -moz-context-properties: fill;
            list-style-image: url(${icon});
        }`;
    var str = "data:text/css," + encodeURIComponent(css), type = windowUtils.USER_SHEET;
    windowUtils.loadSheetUsingURIString(str, type);

    addDestructor(() => {
        btn.remove(); menuitem.remove();
        SidebarUI.sidebars.delete(id);
        windowUtils.removeSheetUsingURIString(str, type);
    });
    var isActive = () => SidebarUI.isOpen && SidebarUI.currentID == id;

    if (isActive()) {
        SidebarUI.selectMenuItem(id);
        var doc = SidebarUI.browser.contentDocument;
        if (doc.readyState != "complete") return;
        var br = doc.getElementById("webext-panels-browser");
        if (br) currentURL = br.currentURI.spec;
    }
    btn.handleCommand = () => {
        if (!btn.hasAttribute("checked")) {
            SidebarUI._switcherPanel.hidePopup();
            btn.setAttribute("checked", true);
        }
        loadURL(gBrowser.currentURI.spec);
    }
    
    if ( document.getElementById("TabCBSite") ) return;
 
  var tabContext = document.getElementById("tabContextMenu");
 
   var mItem = document.createXULElement("menuitem");                 
   mItem.setAttribute("id", "TabCBSite");
   mItem.setAttribute("label", "Открыть в боковой панели");
   mItem.setAttribute("oncommand", "handleCommand1()" );
    mItem.setAttribute("class", "menuitem-iconic");
    mItem.setAttribute("image", icon);
   tabContext.insertBefore( mItem, tabContext.firstChild.nextSibling ); // как первый пункт
    
   // this.onclick = e => {
   //     if (!e.button) loadURL(gBrowser.currentURI.spec);
   //     else if (e.button == 0) SidebarUI.toggle(id);
   //  }
    addEventListener("load", e =>
        e.target.documentURI == url && load(currentURL || defaultURL)
    , true, SidebarUI.browser);

    var loadURL = url => {
        currentURL = url;
        isActive() ? load(url) : SidebarUI.show(id);    
    }
    var principal = {triggeringPrincipal: document.nodePrincipal};
    var config = {browserStyle: false, extension: {remote: false}};
    var load = async url => {
        var win = SidebarUI.browser.contentWindow;
        var br = win.document.getElementById("webext-panels-browser");
        if (br) {
            if (br.currentURI.spec === url) return;
            br.parentNode.remove();
        }
        var br = await win.getBrowser(config);
        win.onunload = () => currentURL = br.currentURI.spec;
        br.loadURI(url, principal);
    }
})("viewCBSiteLoader");

Отсутствует

 

№1375616-09-2019 11:53:43

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1699
UA: Firefox 56.0

Re: Custom Buttons

Dumby пишет

Не знаю, описание ведь не предоставлено.
«Удаление вкладки из закладок» это какая-то конкретная процедура, или что?

Да, это при нажатии на звездочку и кнопку "Удалить 1 закладку", здесь:

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

Dumby пишет

И не указано для какой версии Firefox.

Для 68 версии.

Логика такая, допустим существует папка закладкок в ней 50 закладок.
Вы открываете одну закладку из этой папки, прочитали, удаляете из закладок, и в этой же вкладке загружается следующая закладка из этой же папки.

Отредактировано Stkvsky (16-09-2019 13:04:42)

Отсутствует

 

№1375716-09-2019 15:59:09

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

Re: Custom Buttons

Нажимаю на Google Translate и сервер "ошибка" , что не так?
Строка http://translate.google.com/translate?u=
m5aior76.png

Отсутствует

 

№1375816-09-2019 17:04:43

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1159
UA: Firefox 69.0

Re: Custom Buttons

solombala
Что-то личное, кнопка отсюда работает.
Andrey_Krropotkin
Можно поправить, чтобы при нажатии на Google Translate окошко автоматически закрывалось?

Отсутствует

 

№1375916-09-2019 17:30:47

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

Re: Custom Buttons

xrun1 в "var createWindow" находим "title.onclick = e => {" и в конец функции добавляем "doc.getElementById(wId).closeWin();"

Отсутствует

 

№1376016-09-2019 18:03:20

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1159
UA: Firefox 69.0

Re: Custom Buttons

Andrey_Krropotkin
Спасибо, всё получилось.

Отсутствует

 

№1376116-09-2019 18:05:22

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

Re: Custom Buttons

Как избавиться от ссылки при нажатии на Google translete ?  Ваша многопроцессорная кнопка текст не выделяет...

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

Выделить код

Код:

/*Initialization Code*/
/*Initialization Code*/

var btn = this;

btn.lastClick = {
    X: 0,
    Y: 0
};
addEventListener("mouseup", function(e) {
    if (e && e.button == 0 && e.view.top == content) {
        var lc = btn.lastClick;
        lc.X = e.clientX;
        lc.Y = e.clientY;
    }
}, false);

var createWindow = function(text, status, title, id, pos, size){
    var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content;
    var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
    var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
    if(w)w.closeWin();
    w = doc.createElement('div');
    w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:2px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#eaeaea;padding-top:0px;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    w.id = wId;
    w.closeWin = function(){
        doc.removeEventListener('keydown', keyDown, false);
        this.parentNode.removeChild(this);
    };
    w.addEle = function(str, style){
        var ele = doc.createElement('div');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    var img = doc.createElement('div');
    img.setAttribute('style', 'display:block;float:right;width:16px;height:16px;padding:0;margin-top:2px;margin-right:1px;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACQUlEQVR4Xm2SPUhbURTHfzfNJ4nU0Axx7CJCN2kQtIgVCtq6OdQuBUftWIQqFNsKDo6iHTqIqN3a0kklUKTS2AZrcOjioFtRjFWUfH+803cS9GHwB4dzcu75/+8L9xgaSEDbLXhaASzAyXAMn5/DHxwwjeJgKLRxd3Q0atxuLhGgWqmQmp9PJ7LZJ5Ow3WhQFweDG20LC1FfRwc3kUsm+T48fPIzl3s8VTdxxLt+/2FhdlZkc1MkmdR8Pba2ajlrz3z1+9OvIOaIfb7DwsSEyNKSyM6OSLksEo/rbw2ttadntV7Gnv3k86VfqskvmDzv7hZ580Zkelrk4kJqFIsii4satVrRs+rYmBQHBuRvS4u8g/fuCmDOz+HgAIWpKRgfh3AYhoZQ8Hqxjo4o9PdT3d1FcQEl8KoBnJ7C/j6KZkZGYG4OIhEUFed7erD29q69jGrd1qVBqcQVKgwEuMSEQhjtXRk4JvW/kM1i2WGMga4uzMoKBIOIfbNiolEC6+uU+/qQRALFA1QBlwVYxmBcLmhuxqytQSgEKu7t1dBavwKvbeINh/Has2IMqnXpem4bky6qWLdvZgaOj2FwEHNyoqG19vRMZ8jZs1+NOfsNcZS3EFvzeNL51laRe/dEYrFadsLpZeyZDx7P6QN4Btwx1OE1xO4HAquP2tsjAZ+Pm8gWi3xMpc6W8/kXPyAO/DM4oOsZa2pafdjZGXF7PAgOpXKZL4nE2XImcyUGMDSg63kbhgvgtYCq8+akIL4J3y7Fyn+DokZOnLlMyQAAAABJRU5ErkJggg==");background:-o-skin("Caption Close Button Skin");');
    img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
    w.appendChild(img);
    w.addEle(title, 'display:table;color:#000;font:17px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;padding-bottom:3px;padding-left:3px;margin:0;background-color:#fafcfe;color:#000;font:17px Times New Roman;width:300px;height:160px;overflow:auto;cursor:text;');
    w.addEle(status, 'display:table;font:12px Times New Roman;font-weight:bold;color:blue;width:auto;height:auto;padding-top:2px;margin:0 3px;cursor:pointer;');
    w.addEventListener('mousedown', function(e){
        if(e.target == w){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top);
            var mouseMove = function(ev){
                w.style.left = origX+ev.clientX-grabX+'px';
                w.style.top = origY+ev.clientY-grabY+'px';
            };
            doc.addEventListener('mousemove', mouseMove, false);
            doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
        }
    }, false);
    doc.documentElement.appendChild(w);

    if(size){
        cnt.style.height = size.height;
        cnt.style.width = size.width;
    }else{
        for(var i = 3; i < 10; i++){
            if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                cnt.style.height = 70*i+'px';
                cnt.style.width = 140*i+'px';
            }else break;
        }
    };
    var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body;
    var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
    if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
    if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
    var hW = parseInt(w.offsetWidth/2);
    w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    w.style.visibility = 'visible';
    doc.addEventListener('keydown', keyDown, false);
};

var getSel = function (w) {
    var s, d = w.document;
    if (d.selection) {
        var r = d.selection.createRange();
        s = r ? r.text : ''
    } else {
        s = d.getSelection().toString();
        if (!s) {
            var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length;
            while(e = (i > 0) ? t[--i] : u[-i--])try{
                if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break
            }catch(x){}
        }
    };
    if (!s) for (var j = 0, f; f = w.frames[j]; j++) {
        try {
            if (s = getSel(f)) break
        } catch(x) {}
    };
    return s
};

var getHash = function (txt) {
    TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())');
    function sM(a) {
        var b;
        if (null !== yr)
            b = yr;
        else {
            b = wr(String.fromCharCode(84));
            var c = wr(String.fromCharCode(75));
            b = [b(), b()];
            b[1] = c();
            b = (yr = window[b.join(c())] || "") || ""
        }
        var d = wr(String.fromCharCode(116))
            , c = wr(String.fromCharCode(107))
            , d = [d(), d()];
        d[1] = c();
        c = "&" + d.join("") + "=";
        d = b.split(".");
        b = Number(d[0]) || 0;
        for (var e = [], f = 0, g = 0; g < a.length; g++) {
            var l = a.charCodeAt(g);
            128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
                e[f++] = l >> 18 | 240,
                e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224,
                e[f++] = l >> 6 & 63 | 128),
                e[f++] = l & 63 | 128)
        }
        a = b;
        for (f = 0; f < e.length; f++)
            a += e[f],
                a = xr(a, "+-a^+6");
        a = xr(a, "+-3^+b+-f");
        a ^= Number(d[1]) || 0;
        0 > a && (a = (a & 2147483647) + 2147483648);
        a %= 1E6;
        return c + (a.toString() + "." + (a ^ b))
    }

    var yr = null;
    var wr = function(a) {
        return function() {
            return a
        }
    }
        , xr = function(a, b) {
        for (var c = 0; c < b.length - 2; c += 3) {
            var d = b.charAt(c + 2)
                , d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d)
                , d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
            a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
        }
        return a
    };

    return sM(txt);
};

var ujs_google_translate = function (dir){
    var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win), l = dir.split('|');
    if (txt) {
        var xhr = new XMLHttpRequest();
        var url = 'https://translate.google.com/translate_a/single?client=t&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);

        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
        xhr.onreadystatechange = function() {
            try{
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0'));
                    for(var i = 0, n; n = tmp[0][i]; i++){
                        if(n[0])result += n[0].toString();
                    };
                    result = '<span style="background-color:inherit;color:inherit;font:inherit">' + result + '</span>';
                    status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase();

                    createWindow(result, status, '<a href="'+url.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding-bottom:5px;margin:0;text-decoration:none;border:none;color:blue;font:17px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick);
                }
            } catch (x){LOG(x)};
        };
        xhr.send('q=' + encodeURIComponent(txt));
    } else {
        win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1');
    };
};


btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')};

var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = document.getElementById("context-inspect");

var menuId = "context-ext-google-translate";
var menuItem = document.getElementById(menuId);
if (menuItem) {
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem);
};

menuItem = document.createXULElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Перевести на Русский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

menuItem = document.createXULElement("menuitem");
menuItem.setAttribute("label", "Перевести на Английский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII=");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

contextMenu.insertBefore(document.createXULElement("menuseparator"), nextEleMenu);

addEventListener('keydown', function (e){
 if(e.shiftKey && !e.ctrlKey && e.altKey && e.keyCode == 84)ujs_google_translate('auto|ru');
}, false);



function GetXmlHttpObject(){
         if (window.XMLHttpRequest){ return new XMLHttpRequest();}
         if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");}
        return null;
        };

var btn = this;

btn.lastClick = {
    X: 0,
    Y: 0
};
addEventListener("mouseup", function(e) {
    if (e && e.button == 0 && e.view.top == content) {
        var lc = btn.lastClick;
        lc.X = e.clientX;
        lc.Y = e.clientY;
    }
}, false);

Отсутствует

 

№1376216-09-2019 18:09:59

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

Re: Custom Buttons

solombala от какой ссылки? А в старой она выделяла?  Где выделять должна?

Отредактировано Andrey_Krropotkin (16-09-2019 18:12:20)

Отсутствует

 

№1376316-09-2019 18:24:59

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

Re: Custom Buttons

Andrey_Krropotkin
Текст переведенный выделяет(старая). Код выше. Ссылка при нажатии на Google Translate

Отсутствует

 

№1376416-09-2019 18:44:16

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

Re: Custom Buttons

solombala я так понял, что при нажатии на надпись Google Translate ничего не происходило?

Отсутствует

 

№1376516-09-2019 18:50:13

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

Re: Custom Buttons

Andrey_Krropotkin
Наоборот. происходило, а надо нет.  Подставляю doc.getElementById(wId).closeWin() и не фига...

Отсутствует

 

№1376616-09-2019 19:06:02

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

Re: Custom Buttons

Andrey_Krropotkin пишет

появились однотипные ошибки на 69

Ого, вижу. Получается это и туда засунули что ли.
chrome:// адреса должны работать, destruct() здесь, наверно, не нужен,
оно, вроде, само рассасывается.

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

Выделить код

Код:

var url = "data:application/vnd.mozilla.xul+xml;text/plain," + encodeURIComponent(intf(drives, count));
if (parseInt(Services.appinfo.platformVersion) >= 69 && Services.appinfo.browserTabsRemoteAutostart) {
    var chromeURL = `chrome://custombuttons/content/cbdialog${Date.now()}.xul`;
    Cc["@mozilla.org/addons/addon-manager-startup;1"].getService(Ci.amIAddonManagerStartup).registerChrome(
        Services.io.newFileURI(Services.dirsvc.get("ProfD", Ci.nsIFile)), [["override", chromeURL, url]]
    );
    url = chromeURL;
}


А в боковой панели, ну что ж, пусть будет электролизисно.
скрытый текст

Выделить код

Код:

//var load = async url => {
    var e10sFox69 = Services.appinfo.browserTabsRemoteAutostart
        && parseInt(Services.appinfo.platformVersion) >= 69;
    var load = async url => {
        if (e10sFox69) {
            config.uri = url;
            config.extension.remote = E10SUtils.getRemoteTypeForURI(url, true) != E10SUtils.NOT_REMOTE;
        }


И убери функцию handleCommand1 совсем,
а после создания mItem допиши
    mItem.handleCommand1= () => loadURL(
        TabContextMenu.contextTab.linkedBrowser.currentURI.spec
    );

Stkvsky
Хорошо, попробую

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

Выделить код

Код:

((hide, btns) => addEventListener("command", e => {
    if (e.target.id != "editBookmarkPanelRemoveButton" || StarUI._isNewBookmark) return;

    e.stopPropagation();
    var [guid] = StarUI._itemGuids;
    StarUI._removeBookmarksOnPopupHidden = true;

    PlacesUtils.bookmarks.fetch(guid).then(res => {
        PlacesUtils.bookmarks.fetch({
            parentGuid: res.parentGuid, index: res.index + 1
        }).then(next => {
            hide();
            next && openTrustedLinkIn(next.url.href, "current");
        }, hide);
    }, hide);
}, true, btns || 1))(
    () => StarUI.panel.hidePopup(),
    document.getElementById("editBookmarkPanelBottomButtons")
);

solombala пишет

многопроцессорная кнопка текст не выделяет

Там, где var cnt, в строку стиля можно добавить
-moz-user-focus:normal;-moz-user-select:text;

Отсутствует

 

№1376716-09-2019 20:16:21

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

Re: Custom Buttons

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%3E%u041F%u0435%u0440%u0435%u0432%u043E%u0434%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADKElEQVR42p2TX2hTdxTHPzfJTW6T3qQmapvWabUbog+udp3kYeLQ4f6wiZQNtjlXHyZaBYe6TekYVGRQYexFscOtuD7UdWxzMtAXEbZStKIbDsaUCbVj9o8mTW+aNrlJbu5vJ8Ex2OMO/Lj87jnne873nO9PSyTV3tkAfYi5NhQ1MB1Ijc3ijN+D7CQh28YK+GHDMyxpjlJTkmAdQi5dWvOsUrYkGB5QC5Kcg/aFBxxqqycmcY38a/1yTqYgMw8ByfFKjtZ4V6myCeW8IApyfOw2155fw1DG4dOJJK1r45x5BPDUpZuMr2uXSuAvgBMQgOitjLJNn7iDSJP0rIJ35dt19TeGoi0Es1MMP72KFvm3+88phuYM3HCd3ObQizpa/cW7Kh020E0Tz1yOUxvjdIr7o6t/cLpkEJqZp7s5zN62ZewfnWLQ9VIIBqodBdI5tIbBG8oKhSAaJZDN8tpSP5+3L8eVgLbeAdKal7NH3mKL3FcOXCfV1ITjc7FLFrWZIlpt/4+qEA7hLRrCwk/RusOXu7ax8xHvGTkVgi/89As/T8ia9EUyghKOWSaYyqNx8oIiuEgcshetsooceibJinvTfNH1DpseD3LHSZE4eprs6k24NQaevI1fF8q5FJqv9xvlmFLdkKZlhb77E8TdIlFD54OOl3mzdXm1k+sP0jzbdwF7cRhsj8ysAWYnpYPeQfXPnn3JJG8/sZT+PW8gkuDbkWEiRh3b29dV/edujNE5dB4nHJSCUrQsTdP9mUKrCKHA5piHK+918quVp/VoD9W9uhGejNRx6+N9VZAmoTJZmhbK4vR7BGDPCQEQ/qU8R15aT2/Hi/R8PcyxyyMyVBmaXwIfPiTVf5yYHiF28ARpOyuqk3nJ4DV2HFc4SamUZ3vrGr7vPlitFNraQc4SzZZt6ptWMv3DAOdGrrGj7yvR+2KYr5A0BeCVAwqvBQuyMG+MTzp3cvj15/ivfXfzNq++/yFEIlD7GFjZ6uPRaE4oGuNQI68jIINJu0QbTFoadIJlL7lSgb8sxbSVEb8geUUVtkh55r50MY5Wec6jibV9/A9LjP7e9TdFQScjW9P1XAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%20%20%0Avar%20lc%20%3D%20navigator.lastClick%20%3D%20%7B%7D%3B%0AaddEventListener%28%22mouseup%22%2C%20e%20%3D%3E%20%7B%0A%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20lc.X%20%3D%20e.screenX%20-%20mozInnerScreenX%3B%0A%20%20%20%20lc.Y%20%3D%20e.screenY%20-%20mozInnerScreenY%3B%0A%7D%2C%20false%2C%20gBrowser.tabpanels%20%7C%7C%201%29%3B%0A%0Avar%20createWindow%20%3D%20function%28text%2C%20status%2C%20title%2C%20id%2C%20pos%2C%20size%29%7B%0Avar%20win%20%3D%20window%2C%20doc%20%3D%20win.document%2C%20wId%20%3D%20%27ujs_window%27+%28id%20%7C%7C%20%27%27%29%2C%20w%20%3D%20doc.getElementById%28wId%29%3B%0A%20%20%20%20var%20keyDown%20%3D%20function%28e%29%7Bif%28%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%26%26%20e.keyCode%20%3D%3D%2027%29doc.getElementById%28wId%29.closeWin%28%29%7D%3B%0A%20%20%20%20if%28w%29w.closeWin%28%29%3B%0A%20%20%20%20w%20%3D%20doc.createElementNS%28xhtmlns%2C%20%27div%27%29%3B%0A%20%20%20%20%20w.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bdisplay%3Ablock%3Bvisibility%3Ahidden%3Bleft%3A0%3Btop%3A0%3Bwidth%3Aauto%3Bheight%3Aauto%3Bborder%3A1px%20solid%20gray%3Bpadding%3A2px%3Bmargin%3A0%3Bz-index%3A99999%3Boverflow%3Ahidden%3Bcursor%3Amove%3B%27+%28typeof%20w.style.borderRadius%20%3D%3D%3D%20%27string%27%20%3F%20%27background-color%3A%23eaeaea%3Bpadding-top%3A0px%3Bborder-radius%3A4px%3Bbox-shadow%3A0%200%2015px%20rgba%280%2C0%2C0%2C.4%29%3B%27%20%3A%20%27background%3A-o-skin%28%22Window%20Skin%22%29%3B%27%29%29%3B%0A%20%20%20%20w.id%20%3D%20wId%3B%0A%20%20%20%20w.closeWin%20%3D%20function%28%29%7B%0A%20%20%20%20%20%20%20%20doc.removeEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.parentNode.removeChild%28this%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20w.addEle%20%3D%20function%28str%2C%20style%29%7B%0A%20%20%20%20%20%20%20%20var%20ele%20%3D%20doc.createElementNS%28xhtmlns%2C%20%27div%27%29%3B%0A%20%20%20%20%20%20%20%20ele.setAttribute%28%27style%27%2C%20style%29%3B%0A%20%20%20%20%20%20%20%20if%28str%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20ele.innerHTML%20%3D%20str%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20el%2C%20all%20%3D%20ele.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20el%20%3D%20all%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28/%5E%28script%7Cframe%7Ciframe%7Capplet%7Cembed%7Cobject%29%24/i.test%28el.nodeName%29%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.parentNode.removeChild%28el%29%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%20else%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20att%20%3D%20el.attributes%2C%20j%20%3D%20att.length%3B%20j--%3B%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28/%5Eon%5Ba-z%5D+%24/i.test%28att%5Bj%5D.name%29%29att%5Bj%5D.value%20%3D%20%27%27%3B%0A%20%20%20%20%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%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20return%20this.appendChild%28ele%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20img%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20img.setAttribute%28%27style%27%2C%20%27display%3Ablock%3Bfloat%3Aright%3Bwidth%3A16px%3Bheight%3A16px%3Bpadding%3A0%3Bmargin-top%3A2px%3Bmargin-right%3A1px%3Bborder%3Anone%3Bcursor%3Apointer%3Bbackground-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACQUlEQVR4Xm2SPUhbURTHfzfNJ4nU0Axx7CJCN2kQtIgVCtq6OdQuBUftWIQqFNsKDo6iHTqIqN3a0kklUKTS2AZrcOjioFtRjFWUfH+803cS9GHwB4dzcu75/+8L9xgaSEDbLXhaASzAyXAMn5/DHxwwjeJgKLRxd3Q0atxuLhGgWqmQmp9PJ7LZJ5Ow3WhQFweDG20LC1FfRwc3kUsm+T48fPIzl3s8VTdxxLt+/2FhdlZkc1MkmdR8Pba2ajlrz3z1+9OvIOaIfb7DwsSEyNKSyM6OSLksEo/rbw2ttadntV7Gnv3k86VfqskvmDzv7hZ580Zkelrk4kJqFIsii4satVrRs+rYmBQHBuRvS4u8g/fuCmDOz+HgAIWpKRgfh3AYhoZQ8Hqxjo4o9PdT3d1FcQEl8KoBnJ7C/j6KZkZGYG4OIhEUFed7erD29q69jGrd1qVBqcQVKgwEuMSEQhjtXRk4JvW/kM1i2WGMga4uzMoKBIOIfbNiolEC6+uU+/qQRALFA1QBlwVYxmBcLmhuxqytQSgEKu7t1dBavwKvbeINh/Has2IMqnXpem4bky6qWLdvZgaOj2FwEHNyoqG19vRMZ8jZs1+NOfsNcZS3EFvzeNL51laRe/dEYrFadsLpZeyZDx7P6QN4Btwx1OE1xO4HAquP2tsjAZ+Pm8gWi3xMpc6W8/kXPyAO/DM4oOsZa2pafdjZGXF7PAgOpXKZL4nE2XImcyUGMDSg63kbhgvgtYCq8+akIL4J3y7Fyn+DokZOnLlMyQAAAABJRU5ErkJggg%3D%3D%22%29%3Bbackground%3A-o-skin%28%22Caption%20Close%20Button%20Skin%22%29%3B%27%29%3B%0A%20%20%20%20img.title%20%3D%20%28win.navigator.language.indexOf%28%27ru%27%29%20%3D%3D%200%29%20%3F%20%27%5Cu0417%5Cu0430%5Cu043A%5Cu0440%5Cu044B%5Cu0442%5Cu044C%27%20%3A%20%27Close%27%3B%0A%20%20%20%20img.addEventListener%28%27click%27%2C%20function%28%29%7Bthis.parentNode.closeWin%28%29%7D%2C%20false%29%3B%0A%20%20%20%20w.appendChild%28img%29%3B%0A%20%20%20%20var%20title%20%3D%20w.addEle%28title%2C%20%27display%3Atable%3Bcolor%3A%23000%3Bfont%3A17px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%20%20%20%20%20%20%20%20title.onclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20e.target.href%3B%0A%20%20%20%20%20%20%20%20//%20%u0417%u0434%u0435%u0441%u044C%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u043C%20url%20%u043A%u0430%u043A%20%u0445%u043E%u0442%u0438%u043C.%0A%20%20%20%20%20%20%20%20var%20ctabpos%20%3D%20gBrowser.selectedTab._tPos%20+1%3B%0A%20%20%20%20%20%20%20%20gBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addWebTab%28url%29%2C%20ctabpos%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20var%20cnt%20%3D%20w.addEle%28text%2C%20%27display%3Ablock%3Bborder%3A1px%20solid%20%23aaa%3Bpadding-bottom%3A3px%3Bpadding-left%3A3px%3Bbackground-color%3A%23fafcfe%3Bcolor%3A%23000%3Bfont%3A17px%20Times%20New%20Roman%3Bwidth%3A310px%3Bheight%3A160px%3Boverflow%3Aauto%3Bcursor%3Atext%3B-moz-user-focus%3Anormal%3B-moz-user-select%3Atext%3B%27%29%3B%0A%20%20%20%20w.addEle%28status%2C%20%27display%3Atable%3Bfont%3A12px%20Times%20New%20Roman%3Bfont-weight%3Abold%3Bcolor%3Ablue%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding-top%3A2px%3Bmargin%3A0%203px%3Bcursor%3Apointer%3B%27%29%3B%0A%20%20%20%20w.addEventListener%28%27mousedown%27%2C%20function%28e%29%7B%0A%20%20%20%20%20%20%20%20if%28e.target%20%3D%3D%20w%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20grabX%20%3D%20e.clientX%2C%20grabY%20%3D%20e.clientY%2C%20origX%20%3D%20parseInt%28w.style.left%29%2C%20origY%20%3D%20parseInt%28w.style.top%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20mouseMove%20%3D%20function%28ev%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20w.style.left%20%3D%20origX+ev.clientX-grabX+%27px%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20w.style.top%20%3D%20origY+ev.clientY-grabY+%27px%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20doc.addEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20doc.addEventListener%28%27mouseup%27%2C%20function%28%29%7Bdoc.removeEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%7D%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%20%20doc.documentElement.appendChild%28w%29%3B%0A%20%20%0A%20%20%20%20if%28size%29%7B%0A%20%20%20%20%20%20%20%20cnt.style.height%20%3D%20size.height%3B%0A%20%20%20%20%20%20%20%20cnt.style.width%20%3D%20size.width%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%7B%0A%20%20%20%20%20%20%20%20for%28var%20i%20%3D%203%3B%20i%20%3C%2010%3B%20i++%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28cnt.scrollHeight%20%3E%20cnt.offsetHeight%20%7C%7C%20cnt.scrollWidth%20%3E%20cnt.offsetWidth%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cnt.style.height%20%3D%2080*i+%27px%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cnt.style.width%20%3D%20160*i+%27px%27%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%20else%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20var%20docEle%20%3D%20%28doc.compatMode%20%3D%3D%20%27CSS1Compat%27%20%26%26%20win.postMessage%29%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%20%20%20%20var%20mX%20%3D%20docEle.clientWidth-w.offsetWidth%2C%20mY%20%3D%20docEle.clientHeight-w.offsetHeight%3B%0A%20%20%20%20if%28mX%20%3C%200%29%7Bcnt.style.width%20%3D%20parseInt%28cnt.style.width%29+mX+%27px%27%3B%20mX%20%3D%200%7D%3B%0A%20%20%20%20if%28mY%20%3C%200%29%7Bcnt.style.height%20%3D%20parseInt%28cnt.style.height%29+mY+%27px%27%3B%20mY%20%3D0%7D%3B%0A%20%20%20%20var%20hW%20%3D%20parseInt%28w.offsetWidth/2%29%3B%0A%20%20%20%20w.style.left%20%3D%20%28pos%20%26%26%20pos.X%20%3C%20mX+hW%20%3F%20%28pos.X%20%3E%20hW%20%3F%20pos.X-hW%20%3A%200%29%20%3A%20mX%29+%27px%27%3B%0A%20%20%20%20w.style.top%20%3D%20%28pos%20%26%26%20pos.Y+10%20%3C%20mY%20%3F%20pos.Y+10%20%3A%20mY%29+%27px%27%3B%0A%20%20%20%20w.style.visibility%20%3D%20%27visible%27%3B%0A%20%20%20%20doc.addEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%20%20%20%20return%20w%3B%0A%7D%3B%0A%0Avar%20getHash%20%3D%20function%20%28txt%29%20%7B%0A%20%20%20%20TKK%3Deval%28%27%28%28function%28%29%7Bvar%20a%5Cx3d817046147%3Bvar%20b%5Cx3d-335196159%3Breturn%20410049+%5Cx27.%5Cx27+%28a+b%29%7D%29%28%29%29%27%29%3B%0A%20%20%20%20function%20sM%28a%29%20%7B%0A%20%20%20%20%20%20%20%20var%20b%3B%0A%20%20%20%20%20%20%20%20if%20%28null%20%21%3D%3D%20yr%29%0A%20%20%20%20%20%20%20%20%20%20%20%20b%20%3D%20yr%3B%0A%20%20%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20b%20%3D%20wr%28String.fromCharCode%2884%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20c%20%3D%20wr%28String.fromCharCode%2875%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20b%20%3D%20%5Bb%28%29%2C%20b%28%29%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20b%5B1%5D%20%3D%20c%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20b%20%3D%20%28yr%20%3D%20window%5Bb.join%28c%28%29%29%5D%20%7C%7C%20%22%22%29%20%7C%7C%20%22%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20var%20d%20%3D%20wr%28String.fromCharCode%28116%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20c%20%3D%20wr%28String.fromCharCode%28107%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20d%20%3D%20%5Bd%28%29%2C%20d%28%29%5D%3B%0A%20%20%20%20%20%20%20%20d%5B1%5D%20%3D%20c%28%29%3B%0A%20%20%20%20%20%20%20%20c%20%3D%20%22%26%22%20+%20d.join%28%22%22%29%20+%20%22%3D%22%3B%0A%20%20%20%20%20%20%20%20d%20%3D%20b.split%28%22.%22%29%3B%0A%20%20%20%20%20%20%20%20b%20%3D%20Number%28d%5B0%5D%29%20%7C%7C%200%3B%0A%20%20%20%20%20%20%20%20for%20%28var%20e%20%3D%20%5B%5D%2C%20f%20%3D%200%2C%20g%20%3D%200%3B%20g%20%3C%20a.length%3B%20g++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20l%20%3D%20a.charCodeAt%28g%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20128%20%3E%20l%20%3F%20e%5Bf++%5D%20%3D%20l%20%3A%20%282048%20%3E%20l%20%3F%20e%5Bf++%5D%20%3D%20l%20%3E%3E%206%20%7C%20192%20%3A%20%2855296%20%3D%3D%20%28l%20%26%2064512%29%20%26%26%20g%20+%201%20%3C%20a.length%20%26%26%2056320%20%3D%3D%20%28a.charCodeAt%28g%20+%201%29%20%26%2064512%29%20%3F%20%28l%20%3D%2065536%20+%20%28%28l%20%26%201023%29%20%3C%3C%2010%29%20+%20%28a.charCodeAt%28++g%29%20%26%201023%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e%5Bf++%5D%20%3D%20l%20%3E%3E%2018%20%7C%20240%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e%5Bf++%5D%20%3D%20l%20%3E%3E%2012%20%26%2063%20%7C%20128%29%20%3A%20e%5Bf++%5D%20%3D%20l%20%3E%3E%2012%20%7C%20224%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e%5Bf++%5D%20%3D%20l%20%3E%3E%206%20%26%2063%20%7C%20128%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e%5Bf++%5D%20%3D%20l%20%26%2063%20%7C%20128%29%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20a%20%3D%20b%3B%0A%20%20%20%20%20%20%20%20for%20%28f%20%3D%200%3B%20f%20%3C%20e.length%3B%20f++%29%0A%20%20%20%20%20%20%20%20%20%20%20%20a%20+%3D%20e%5Bf%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20a%20%3D%20xr%28a%2C%20%22+-a%5E+6%22%29%3B%0A%20%20%20%20%20%20%20%20a%20%3D%20xr%28a%2C%20%22+-3%5E+b+-f%22%29%3B%0A%20%20%20%20%20%20%20%20a%20%5E%3D%20Number%28d%5B1%5D%29%20%7C%7C%200%3B%0A%20%20%20%20%20%20%20%200%20%3E%20a%20%26%26%20%28a%20%3D%20%28a%20%26%202147483647%29%20+%202147483648%29%3B%0A%20%20%20%20%20%20%20%20a%20%25%3D%201E6%3B%0A%20%20%20%20%20%20%20%20return%20c%20+%20%28a.toString%28%29%20+%20%22.%22%20+%20%28a%20%5E%20b%29%29%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20yr%20%3D%20null%3B%0A%20%20%20%20var%20wr%20%3D%20function%28a%29%20%7B%0A%20%20%20%20%20%20%20%20return%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20a%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%2C%20xr%20%3D%20function%28a%2C%20b%29%20%7B%0A%20%20%20%20%20%20%20%20for%20%28var%20c%20%3D%200%3B%20c%20%3C%20b.length%20-%202%3B%20c%20+%3D%203%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20d%20%3D%20b.charAt%28c%20+%202%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2C%20d%20%3D%20%22a%22%20%3C%3D%20d%20%3F%20d.charCodeAt%280%29%20-%2087%20%3A%20Number%28d%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2C%20d%20%3D%20%22+%22%20%3D%3D%20b.charAt%28c%20+%201%29%20%3F%20a%20%3E%3E%3E%20d%20%3A%20a%20%3C%3C%20d%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20a%20%3D%20%22+%22%20%3D%3D%20b.charAt%28c%29%20%3F%20a%20+%20d%20%26%204294967295%20%3A%20a%20%5E%20d%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20a%0A%20%20%20%20%7D%3B%20%0A%0A%20%20%20%20return%20sM%28txt%29%3B%0A%7D%3B%20%0A%20%0A%20%20%0A%20%0Avar%20ujs_google_translate%20%3D%20function%20%28dir%29%7B%0A%20%20%20%20var%20lng%20%3D%20window.navigator.language.slice%280%2C%202%29%2C%20txt%20%3D%20gContextMenuContentData.selectionInfo.fullText%2C%20l%20%3D%20dir.split%28%27%7C%27%29%3B%0A%20%20%20%20var%20encTxt%20%3D%20encodeURIComponent%28txt%29%3B%0A%20%20%20%20var%20winWait%20%3D%20function%28lng%29%7BcreateWindow%28%27%27%2C%20%28lng%20%3D%3D%20%27ru%27%20%3F%20%27%5Cu041F%5Cu0435%5Cu0440%5Cu0435%5Cu0432%5Cu043E%5Cu0434%5Cu0438%5Cu043C%27%20%3A%20%27Translating%27%29+%27%5Cu2026%27%2C%20%27Google%20Translate%27%2C%20%27_gt%27%2C%20window.navigator.lastClick%29%7D%3B%0A%20%20%20%20%0A%20%20%20%20if%20%28txt%29%20%7B%0A%20%20%20%0A%20%20%20%20%20%20%20%20winWait%28lng%29%3B%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%27https%3A//translate.google.com/translate_a/single%3Fclient%3Dt%26sl%3D%27%20+%20l%5B0%5D%20+%20%27%26tl%3D%27%20+%20l%5B1%5D%20+%20%27%26hl%3D%27%20+%20lng%20+%20%27%26eotf%3D0%26dt%3Dat%26dt%3Dbd%26dt%3Dex%26dt%3Dld%26dt%3Dmd%26dt%3Dqca%26dt%3Drw%26dt%3Drm%26dt%3Dss%26dt%3Dt%27%20+%20getHash%28txt%29%3B%0A%20%20%20%20%20%20%20%20var%20urle%20%3D%20%22http%3A//translate.google.com/translate_t%3Ftext%3D%22+encTxt+%22%26sl%3D%27%20+%20l%5B0%5D%20+%20%27%26tl%3D%27%20+%20l%5B1%5D%20+%20%27%26hl%3D%27%20+%20lng%20+%20%27%26eotf%3D0%26ujs%3Dgtt%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20xhr.open%28%27POST%27%2C%20url%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20xhr.setRequestHeader%28%27Content-Type%27%2C%20%27application/x-www-form-urlencoded%3Bcharset%3Dutf-8%27%29%3B%0A%20%20%20%20%20%20%20%20xhr.onreadystatechange%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28xhr.readyState%20%3D%3D%204%20%26%26%20xhr.status%20%3D%3D%20200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20%27%27%2C%20status%20%3D%20%27%27%2C%20tmp%20%3D%20JSON.parse%28xhr.responseText.replace%28/%5C%5B%28%3F%3D%2C%29/g%2C%20%27%5B0%27%29.replace%28/%2C%28%3F%3D%2C%7C%5C%5D%29/g%2C%20%27%2C0%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20i%20%3D%200%2C%20n%3B%20n%20%3D%20tmp%5B0%5D%5Bi%5D%3B%20i++%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28n%5B0%5D%29result%20+%3D%20n%5B0%5D.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20result%20%3D%20%27%3Cspan%20style%3D%22background-color%3Ainherit%3Bcolor%3Ainherit%3Bfont-size%3Ainherit%3Bfont-family%3ATimes%2Cserif%3B%22%3E%27%20+%20result%20+%20%27%3C/span%3E%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20tmp%5B8%5D%5B0%5D%5B0%5D.toUpperCase%28%29%20+%20%27%20-%5Cu203A%20%27%20+%20l%5B1%5D.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createWindow%28result%2C%20status%2C%20%27%3Ca%20href%3D%22%27+urle.replace%28/%26/g%2C%27%26amp%3B%27%29+%27%22%20%20style%3D%22display%3Ainline%3Bpadding%3A0%3Bmargin%3A0%3Btext-decoration%3Anone%3Bborder%3Anone%3Bcolor%3Ablue%3Bfont%3A17px%20Times%20New%20Roman%3B%22%3EGoogle%20Translate%3C/a%3E%27%2C%20%27_gt%27%2C%20window.navigator.lastClick%29%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%7D%20catch%20%28x%29%7BLOG%28x%29%7D%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20xhr.send%28%27q%3D%27%20+%20encodeURIComponent%28txt%29%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20var%20urlt%20%3D%20gBrowser.currentURI.spec%3B%20%20%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22http%3A//translate.google.com/translate%3Fu%3D%22+encodeURIComponent%28urlt%29+%22%26hl%3D%22+lng+%22%26langpair%3D%22+dir+%22%26tbb%3D1%22%3B%0A%20%20%20%20%20%20%20%20var%20ctabpos%20%3D%20gBrowser.selectedTab._tPos%20+1%3B%0A%20%20%20%20%20%20%20%20gBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addWebTab%28url%29%2C%20ctabpos%29%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0A%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20nextEleMenu%20%3D%20document.getElementById%28%22context-inspect%22%29%3B%0A%0Avar%20menuId%20%3D%20%22context-ext-google-translate%22%3B%0Avar%20menuItem%20%3D%20document.getElementById%28menuId%29%3B%0Aif%20%28menuItem%29%20%7B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem%29%3B%0A%7D%3B%0A%0AmenuItem%20%3D%20document.createXULElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22id%22%2C%20menuId%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0440%u0443%u0441%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cru%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AmenuItem%20%3D%20document.createXULElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0430%u043D%u0433%u043B%u0438%u0439%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII%3D%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cen%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AcontextMenu.insertBefore%28document.createXULElement%28%22menuseparator%22%29%2C%20nextEleMenu%29%3B%0A%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%20%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

Отредактировано solombala (16-09-2019 20:22:53)

Отсутствует

 

№1376816-09-2019 21:12:57

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1699
UA: Firefox 56.0

Re: Custom Buttons

Dumby пишет

Хорошо, попробую

Невероятно) Доволен как слон:) Спасибо большое)

Отсутствует

 

№1376916-09-2019 21:52:35

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

Re: Custom Buttons

Dumby помоги разобраться с еще одной для многопроцессорного-
var defaultURL = gBrowser.currentURI.spec; загружает что попало

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

Выделить код

Код:

/*Initialization Code*/
// Добавить новый пункт "Открыть в нижней панели" в контекстное меню вкладки ..............................................................................................
(function () {
    gCBNote = this; // global obj
    var label = "Сайт";
    var icon  ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAABKUlEQVQ4T6WS24qDMBRF/f9fHCi1ijHkQi7kRqJ7jpYZYSxMi8J6CezlyT7p6MNFXh5+wsvDT+hQ2opcn6TyJG7kJ4HwcYXxDcoWCJXhXD4E67r+y7IsKKUipYwQElpO7wtaW5BzRYwF3idYG5FCfE9w/PknHKC1R3D+EEi6j3LlhLQZs04YRcBjdrhPFrdB46tXuI/qEFykg0vUbqi/SF8hqG1utgkyJhUxyogHD+hnjzvz0MoegtPdqbRaGhKVFjytzG4BB8EtZqYx0fh8kmfBsqyote2Nh1CosARjAqR04BSeJoNhUOh7iWkQZ0Gtx7q2h2JMhFJ+DzO2hfUevt0Ehp7/FSxEo/ELVnokNSYkWlWwDk4ZaKEhGY0+crCBQ7H5EFwCuAK6b7kpsLGbUcTpAAAAAElFTkSuQmCC";
    var defaultURL = gBrowser.currentURI.spec;
  
 
 
    function $(aId) {
  return document.getElementById(aId);
}

this.togglePanel = function() {
  this.panel = !this.panel;
  $("SNote-splitter").hidden = !this.panel;
  $("SNote-panel").hidden = !this.panel;
  $("SNote-iframe").setAttribute("src", this.panel ? defaultURL : "");
}
 
function makeXML(aXMLString) {
  return (new DOMParser).parseFromString(aXMLString, "application/xml")
                        .documentElement;
}

function $xml(aNode, aId, aXML) {
  var node = $(aId);
  
 node && node.parentNode.removeChild(node);
 aNode && aNode.appendChild(makeXML(aXML))
 
}

$xml($("appcontent"),
     "SNote-splitter",
     '<splitter xmlns="' + xulns + '" id="SNote-splitter"'
   + ' orient="vertical" hidden="true">'
   + '<grippy oncommand="this.parentNode.nextSibling.collapsed ='
   + ' !this.parentNode.nextSibling.collapsed;"/></splitter>');

$xml($("appcontent"),
     "SNote-panel",
     '<vbox xmlns="' + xulns + '" id="SNote-panel"'
   + ' height="300" hidden="true">'
   + '<toolbox><toolbar align="center">'
   + '<label value=" " flex="1" crop="end"/>'
   + '<toolbarbutton class="tabs-closebutton"'
   + ' image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACt0lEQVQ4jaWSzUtUYRTGn/fcGZ25H+m9Iyne8fpFq4lGCsFFIW21NiKKuHIn4qpazDraabnMTVEh+Af0B0QIIohBowhlkM1MMTre+VLngzv3PW1SKWvVWR0eOL/zcM4jmBn/U4G/iTuzsyK7unoLUl4HABDtdExNbV1fXr60Tfzp4J1h3Dd1/ak1OHhN7+kBiHCaTsPd2NgrlMsP7x4fv/0nYE3XH9ix2GLbzIwQmvYbmCsVHL16xd+3tx/dOTl5dqbTWfPeMIavOs6COT0tmBmyWAS1toJaWyGLRbCUMKemxFXHWXhvGMOXACrw2BwdJYUITX190MbG4O/twf/yBdrYGJr6+6EQwbx3j1QhHv8GWDfNNjUavR3u6ACyWQRjMQRsG+rkJNSJCQRsG8FYDDKbRbi9Harj3F43zbYLB41Gr2bbRIUCFACnS0vwMhkEbBsB24aXyaCcSEDJZiFyOWidnYRGo/f8jQpQp9NTiFwOACCJACEuDsgMeXAAuC7YMECeBwWonwOaLOtT/evXMhTlSs00oS8vI2jbqGcyADOau7pgvHiB8vg4tMND1F233GRZn87pzIwtXX9eiEb5uLubC2/ecC2V4qOhIT4aGuJqKsX516/52HG4EI3ylq4/P5s7z8FHy2qXnvehOxTqDBGhFongiusCAMqWhVA+j5qU+Far/RDB4M2BfP7gUpCSLS03qr7/NiyEExEC6i+9AsBlRpU5FVaU+zdKpeSlHCSTSazOzW0XNW2gCjzZ9/3Pu77Pu77P+77/uQo8cTVt4OXMzM7a2tpFlBOJhFhZWWkulUphz/NUKWWYmUPM3GwCKgBRAKoA6kRUI6JKIBCo6rpeGRkZqQlmRjqdxuLiIm1ublIul6NKpaI0Gg3yfV8AABFxMBiUoVBIRiIRPx6Py/n5eRmPx/ETBvM/dPD/rBwAAAAASUVORK5CYII="'   
   + ' oncommand="gCBNote.togglePanel();"/>'
   + '</toolbar></toolbox>'
   + '<iframe id="SNote-iframe" src="" flex="1"/>'
   + '</vbox>');

   
   if ( document.getElementById("TabSNote") ) return;
 
   var tabContext = document.getElementById("tabContextMenu");
   var menuItem = document.createXULElement("menuitem");                 
   menuItem.setAttribute("id", "TabSNote");
   menuItem.setAttribute("label", "Открыть в нижней панели");
   menuItem.setAttribute("class", "menuitem-iconic");
   menuItem.setAttribute("image", icon);
   menuItem.setAttribute("oncommand", "gCBNote.togglePanel();" );
   tabContext.insertBefore( menuItem, tabContext.firstChild.nextSibling ); // как первый пункт 
   
})();


и еще вот перестала правильно работать
скрытый текст

Выделить код

Код:

// Добавить нумерацию вкладок ..........................................................................................................................
(function (x) {
    gBrowser.addEventListener("load", x, true);
    window.addEventListener("TabMove", x, false);
    window.addEventListener("TabClose", x, false);
})(function () {
    setTimeout(function () {
        Array.map(gBrowser.visibleTabs || gBrowser.mTabs, function (tab, num) {
            tab.label = (num + 1) + "  \u202D" + tab.label.match(/(?:^\d+  \u202D)?(.+)/)[1];
        })
    }, 5);
});

Отредактировано Andrey_Krropotkin (16-09-2019 22:38:37)

Отсутствует

 

№1377017-09-2019 07:38:52

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

Re: Custom Buttons

solombala пишет

От теперь лепо, хвала! Перевод

текст выделяется и что контекстное меню для переведенного текста есть? У меня почему нет.
А вот так есть

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

Выделить код

Код:

/*Initialization Code*/
  
var lc = navigator.lastClick = {};
addEventListener("mouseup", e => {
    if (e.button) return;
    lc.X = e.screenX - mozInnerScreenX;
    lc.Y = e.screenY - mozInnerScreenY;
}, false, gBrowser.tabpanels || 1);

var createWindow = function(text, status, title, id, pos, size){
var win = window, doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
    var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
    if(w)w.closeWin();
    w = doc.createElementNS(xhtmlns, 'div');
     w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:2px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#eaeaea;padding-top:0px;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    w.id = wId;
    w.closeWin = function(){
        doc.removeEventListener('keydown', keyDown, false);
        this.parentNode.removeChild(this);
    };
    w.addEle = function(str, style){
        var ele = doc.createElementNS(xhtmlns, 'div');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }
                else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    w.addEle1 = function(str, style){
        var ele = doc.createElementNS(xhtmlns, 'textarea');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    var img = doc.createElement('div');
    img.setAttribute('style', 'display:block;float:right;width:16px;height:16px;padding:0;margin-top:2px;margin-right:1px;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACQUlEQVR4Xm2SPUhbURTHfzfNJ4nU0Axx7CJCN2kQtIgVCtq6OdQuBUftWIQqFNsKDo6iHTqIqN3a0kklUKTS2AZrcOjioFtRjFWUfH+803cS9GHwB4dzcu75/+8L9xgaSEDbLXhaASzAyXAMn5/DHxwwjeJgKLRxd3Q0atxuLhGgWqmQmp9PJ7LZJ5Ow3WhQFweDG20LC1FfRwc3kUsm+T48fPIzl3s8VTdxxLt+/2FhdlZkc1MkmdR8Pba2ajlrz3z1+9OvIOaIfb7DwsSEyNKSyM6OSLksEo/rbw2ttadntV7Gnv3k86VfqskvmDzv7hZ580Zkelrk4kJqFIsii4satVrRs+rYmBQHBuRvS4u8g/fuCmDOz+HgAIWpKRgfh3AYhoZQ8Hqxjo4o9PdT3d1FcQEl8KoBnJ7C/j6KZkZGYG4OIhEUFed7erD29q69jGrd1qVBqcQVKgwEuMSEQhjtXRk4JvW/kM1i2WGMga4uzMoKBIOIfbNiolEC6+uU+/qQRALFA1QBlwVYxmBcLmhuxqytQSgEKu7t1dBavwKvbeINh/Has2IMqnXpem4bky6qWLdvZgaOj2FwEHNyoqG19vRMZ8jZs1+NOfsNcZS3EFvzeNL51laRe/dEYrFadsLpZeyZDx7P6QN4Btwx1OE1xO4HAquP2tsjAZ+Pm8gWi3xMpc6W8/kXPyAO/DM4oOsZa2pafdjZGXF7PAgOpXKZL4nE2XImcyUGMDSg63kbhgvgtYCq8+akIL4J3y7Fyn+DokZOnLlMyQAAAABJRU5ErkJggg==");background:-o-skin("Caption Close Button Skin");');
    img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
    w.appendChild(img);
    var title = w.addEle(title, 'display:table;color:#000;font:17px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
        title.onclick = e => {
        e.preventDefault();
        var url = e.target.href;
        // Здесь открываем url как хотим.
        var ctabpos = gBrowser.selectedTab._tPos +1;
        gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addWebTab(url), ctabpos);
       doc.getElementById(wId).closeWin(); 
    }
    var cnt = w.addEle1(text, 'display:block;border:1px solid #aaa;padding-bottom:3px;padding-left:3px;background-color:#fafcfe;color:#000;font:17px Times New Roman;width:310px;height:160px;overflow:auto;cursor:text;-moz-user-focus:normal;-moz-user-select:text;');
    cnt.contentEditable="true";
    cnt.context="contentAreaContextMenu";    w.addEle(status, 'display:table;font:12px Times New Roman;font-weight:bold;color:blue;width:auto;height:auto;padding-top:2px;margin:0 3px;cursor:pointer;');
    w.addEventListener('mousedown', function(e){
        if(e.target == w){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top);
            var mouseMove = function(ev){
                w.style.left = origX+ev.clientX-grabX+'px';
                w.style.top = origY+ev.clientY-grabY+'px';
            };
            doc.addEventListener('mousemove', mouseMove, false);
            doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
        }
    }, false);
    doc.documentElement.appendChild(w);
  
    if(size){
        cnt.style.height = size.height;
        cnt.style.width = size.width;
    }
    else{
        for(var i = 3; i < 10; i++){
            if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                cnt.style.height = 80*i+'px';
                cnt.style.width = 160*i+'px';
            }
            else break;
        }
    };

    var docEle = (doc.compatMode == 'CSS1Compat' && win.postMessage) ? doc.documentElement : doc.body;
    var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
    if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
    if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
    var hW = parseInt(w.offsetWidth/2);
    w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    w.style.visibility = 'visible';
    doc.addEventListener('keydown', keyDown, false);
    return w;
};

var getHash = function (txt) {
    TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())');
    function sM(a) {
        var b;
        if (null !== yr)
            b = yr;
        else {
            b = wr(String.fromCharCode(84));
            var c = wr(String.fromCharCode(75));
            b = [b(), b()];
            b[1] = c();
            b = (yr = window[b.join(c())] || "") || ""
        }
        var d = wr(String.fromCharCode(116))
            , c = wr(String.fromCharCode(107))
            , d = [d(), d()];
        d[1] = c();
        c = "&" + d.join("") + "=";
        d = b.split(".");
        b = Number(d[0]) || 0;
        for (var e = [], f = 0, g = 0; g < a.length; g++) {
            var l = a.charCodeAt(g);
            128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
                e[f++] = l >> 18 | 240,
                e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224,
                e[f++] = l >> 6 & 63 | 128),
                e[f++] = l & 63 | 128)
        }
        a = b;
        for (f = 0; f < e.length; f++)
            a += e[f],
                a = xr(a, "+-a^+6");
        a = xr(a, "+-3^+b+-f");
        a ^= Number(d[1]) || 0;
        0 > a && (a = (a & 2147483647) + 2147483648);
        a %= 1E6;
        return c + (a.toString() + "." + (a ^ b))
    }

    var yr = null;
    var wr = function(a) {
        return function() {
            return a
        }
    }
        , xr = function(a, b) {
        for (var c = 0; c < b.length - 2; c += 3) {
            var d = b.charAt(c + 2)
                , d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d)
                , d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
            a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
        }
        return a
    }; 

    return sM(txt);
}; 
 
  
 
var ujs_google_translate = function (dir){
    var lng = window.navigator.language.slice(0, 2), txt = gContextMenuContentData.selectionInfo.fullText, l = dir.split('|');
    var encTxt = encodeURIComponent(txt);
    var winWait = function(lng){createWindow('', (lng == 'ru' ? '\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u0438\u043C' : 'Translating')+'\u2026', 'Google Translate', '_gt', window.navigator.lastClick)};
    
    if (txt) {
   
        winWait(lng);
    
        var xhr = new XMLHttpRequest();
        var url = 'https://translate.google.com/translate_a/single?client=t&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);
        var urle = "http://translate.google.com/translate_t?text="+encTxt+"&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt";
                  
        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
        xhr.onreadystatechange = function() {
            try{
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0'));
                    for(var i = 0, n; n = tmp[0][i]; i++){
                        if(n[0])result += n[0].toString();
                    };
                    //result = '<span style="background-color:inherit;color:inherit;font-size:inherit;font-family:Times,serif;">' + result + '</span>';
                    status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase();
                    createWindow(result, status, '<a href="'+urle.replace(/&/g,'&amp;')+'"  style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:blue;font:17px Times New Roman;">Google Translate</a>', '_gt', window.navigator.lastClick);
                }
            } catch (x){LOG(x)};
        };
        xhr.send('q=' + encodeURIComponent(txt));
    } else {
        var urlt = gBrowser.currentURI.spec;  
        var url = "http://translate.google.com/translate?u="+encodeURIComponent(urlt)+"&hl="+lng+"&langpair="+dir+"&tbb=1";
        var ctabpos = gBrowser.selectedTab._tPos +1;
        gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addWebTab(url), ctabpos);
    };
};




var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = document.getElementById("context-inspect");

var menuId = "context-ext-google-translate";
var menuItem = document.getElementById(menuId);
if (menuItem) {
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem);
};

menuItem = document.createXULElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Перевести на русский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

menuItem = document.createXULElement("menuitem");
menuItem.setAttribute("label", "Перевести на английский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII=");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

contextMenu.insertBefore(document.createXULElement("menuseparator"), nextEleMenu);

Отредактировано Andrey_Krropotkin (17-09-2019 07:45:32)

Отсутствует

 

№1377117-09-2019 08:47:31

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

Re: Custom Buttons

Andrey_Krropotkin
То je шик !
avizr3jm.png

Отсутствует

 

№1377217-09-2019 14:59:22

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1159
UA: Firefox 69.0

Re: Custom Buttons

Вот вы запарились с этим окошком... Использую кнопку только для перевода всей страницы, для окна QTranslate - даббл клик Ctrl рулит. Там и возможностей больше, а памяти он кушает минимально. Хотя, нет предела совершенству!))

скрытый текст
https://i.imgur.com/L6k7hrK.png

Отредактировано xrun1 (17-09-2019 15:00:05)

Отсутствует

 

№1377317-09-2019 22:45:23

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

Re: Custom Buttons

Dumby
Не знаете, почему поиск плагин в 69 невозможно сделать без https ? Могу сломать search-extensions и переделать на searchplugins, так настойки поиска не работают.
А в самих search-extensions только https...К примеру , http://seasonvar.ru/ , все никак...только https://seasonvar.ru/ , так сайт падает...Где плюсы новых версий?
Зато минусов, как грязи...

Отсутствует

 

№1377418-09-2019 04:52:01

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1159
UA: Firefox 69.0

Re: Custom Buttons

solombala пишет

почему поиск плагин в 69 невозможно сделать без https ?

Есть какая-то кнопка или вопрос чисто теоретический?
Если теоретический, то проблем нет. Пользуюсь ContextSearch web-ext Lite и через него поиск легко делается.
Ради интереса, сделал для http://seasonvar.ru/ --> картинка1 - добавлено в search.json.mozlz4, картинка2 - настройки в расширении.

Отсутствует

 

№1377518-09-2019 12:19:05

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

Re: Custom Buttons

А я не пользуюсь, ни поисковыми плагинами, ни WebExtensions для них.
Но тоже, ради интереса, попробовал — нормально установилось, и в 69, и в 71.

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

Выделить код

Код:

Services.search.addEngine("data:text/xml," + encodeURIComponent(`

    <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
        <ShortName>seasonvar.ru</ShortName>
        <Description>Сериалы ТУТ! Сериалы онлайн смотреть бесплатно. Смотреть онлайн.</Description>
        <InputEncoding>UTF-8</InputEncoding>
        <Image width="16" height="16">data:image/x-icon;base64,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</Image>
        <Url type="text/html" method="GET" template="http://seasonvar.ru/search">
            <Param name="q" value="{searchTerms}"/>
        </Url>
        <SearchForm>http://seasonvar.ru/</SearchForm>
    </SearchPlugin>

`), null, null);

Andrey_Krropotkin пишет

помоги разобраться с еще одной для многопроцессорного

Я же давал ссылку чуть выше, или думаешь дело в другом?
Если я правильно понимаю, теперь, в многопроцессном Firefox, при попытке
загрузить в родительском процессе какой-нибудь документ с http(s) адресом,
или даже data: или blob: — nsDocShell будет показывать фигу.

То есть <iframe> не подходит, нужен <browser>, как в сайдбаре.
Могу попытаться сделать набросок, чтобы было от чего оттолкнуться.

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

Выделить код

Код:

(xul => {
    var hidden = true;
    var df = MozXULElement.parseXULToFragment(xul);
    var [splitter, box, menuitem] = df.children;
    
    var btn = box.querySelector("toolbarbutton");
    btn.handleCommand = () => splitter.hidden = box.hidden = hidden = !hidden;
    
    var popup = document.getElementById("tabContextMenu");
    popup.insertBefore(menuitem, popup.firstChild.nextSibling);

    var tab = box.querySelector("tab");
    var setTab = set => set
        ? gBrowser._tabForBrowser.set(tab.linkedBrowser = box.lastChild, tab)
        : gBrowser._tabForBrowser.delete(box.lastChild);
    setTab(true);

    var destroyBrowser = br => {
        br.messageManager.loadFrameScript(
            "data:,docShell.createAboutBlankContentViewer(null,null)", false
        );
        setTab(); br.remove();
    }
    var principal = {
        triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
    };
    var getBrowser = Services.appinfo.browserTabsRemoteAutostart
        ? tab => {
            var br = box.lastChild;
            var type = tab.linkedBrowser.remoteType;
            if (br.remoteType != type) {
                destroyBrowser(br);
                br = br.cloneNode(false);
                if (type)
                    br.setAttribute("remote", true),
                    br.setAttribute("remoteType", type);
                else
                    br.removeAttribute("remote"),
                    br.removeAttribute("remoteType");
                box.append(br);
                setTab(true);
            }
            return br;
        }
        : () => box.lastChild;

    menuitem.handleCommand = () => {
        hidden && btn.handleCommand();
        var tab = TabContextMenu.contextTab;
        getBrowser(tab).loadURI(tab.linkedBrowser.currentURI.spec, principal);
    }
    addDestructor(() => {
        destroyBrowser(box.lastChild);
        for(var node of [splitter, box, menuitem]) node.remove();
    });
    document.getElementById("appcontent").append(df);
})(`
    <splitter id="SNote-splitter" orient="vertical" hidden="true"/>
    <vbox id="SNote-panel" height="300" hidden="true">
        <toolbox>
            <toolbar>
                <tabs flex="1">
                    <tab collapsed="true"/>
                </tabs>
                <toolbarbutton class="tabs-closebutton" 
                    oncommand="handleCommand();"
                    image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACt0lEQVQ4jaWSzUtUYRTGn/fcGZ25H+m9Iyne8fpFq4lGCsFFIW21NiKKuHIn4qpazDraabnMTVEh+Af0B0QIIohBowhlkM1MMTre+VLngzv3PW1SKWvVWR0eOL/zcM4jmBn/U4G/iTuzsyK7unoLUl4HABDtdExNbV1fXr60Tfzp4J1h3Dd1/ak1OHhN7+kBiHCaTsPd2NgrlMsP7x4fv/0nYE3XH9ix2GLbzIwQmvYbmCsVHL16xd+3tx/dOTl5dqbTWfPeMIavOs6COT0tmBmyWAS1toJaWyGLRbCUMKemxFXHWXhvGMOXACrw2BwdJYUITX190MbG4O/twf/yBdrYGJr6+6EQwbx3j1QhHv8GWDfNNjUavR3u6ACyWQRjMQRsG+rkJNSJCQRsG8FYDDKbRbi9Harj3F43zbYLB41Gr2bbRIUCFACnS0vwMhkEbBsB24aXyaCcSEDJZiFyOWidnYRGo/f8jQpQp9NTiFwOACCJACEuDsgMeXAAuC7YMECeBwWonwOaLOtT/evXMhTlSs00oS8vI2jbqGcyADOau7pgvHiB8vg4tMND1F233GRZn87pzIwtXX9eiEb5uLubC2/ecC2V4qOhIT4aGuJqKsX516/52HG4EI3ylq4/P5s7z8FHy2qXnvehOxTqDBGhFongiusCAMqWhVA+j5qU+Far/RDB4M2BfP7gUpCSLS03qr7/NiyEExEC6i+9AsBlRpU5FVaU+zdKpeSlHCSTSazOzW0XNW2gCjzZ9/3Pu77Pu77P+77/uQo8cTVt4OXMzM7a2tpFlBOJhFhZWWkulUphz/NUKWWYmUPM3GwCKgBRAKoA6kRUI6JKIBCo6rpeGRkZqQlmRjqdxuLiIm1ublIul6NKpaI0Gg3yfV8AABFxMBiUoVBIRiIRPx6Py/n5eRmPx/ETBvM/dPD/rBwAAAAASUVORK5CYII="
                />
            </toolbar>
        </toolbox>
        <browser
            flex="1"
            type="content"
            id="SNote-browser"
            tooltip="aHTMLTooltip"
            disableglobalhistory="true"
            context="contentAreaContextMenu"
        />
    </vbox>

    <menuitem class="menuitem-iconic"
        id="TabSNote"
        oncommand="handleCommand();"
        label="Открыть в нижней панели"
        image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAABKUlEQVQ4T6WS24qDMBRF/f9fHCi1ijHkQi7kRqJ7jpYZYSxMi8J6CezlyT7p6MNFXh5+wsvDT+hQ2opcn6TyJG7kJ4HwcYXxDcoWCJXhXD4E67r+y7IsKKUipYwQElpO7wtaW5BzRYwF3idYG5FCfE9w/PknHKC1R3D+EEi6j3LlhLQZs04YRcBjdrhPFrdB46tXuI/qEFykg0vUbqi/SF8hqG1utgkyJhUxyogHD+hnjzvz0MoegtPdqbRaGhKVFjytzG4BB8EtZqYx0fh8kmfBsqyote2Nh1CosARjAqR04BSeJoNhUOh7iWkQZ0Gtx7q2h2JMhFJ+DzO2hfUevt0Ehp7/FSxEo/ELVnokNSYkWlWwDk4ZaKEhGY0+crCBQ7H5EFwCuAK6b7kpsLGbUcTpAAAAAElFTkSuQmCC"
    />
`);

Andrey_Krropotkin пишет

и еще вот перестала правильно работать

Ну да, откуда "load" то возьмётся, load "там" остался.
Что-нибудь другое попробуй, типа

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

Выделить код

Код:

(num => {
    var lst = type => addEventListener(type, func, false, gBrowser.tabContainer);
    
    var func = e => e.detail.changed.includes("label") && num(e.target, e.target._tPos);
    lst("TabAttrModified");
    
    (func = () => gBrowser.visibleTabs.forEach(num))();
    for(var type of ["TabOpen", "TabClose", "TabMove"]) lst(type);
})(
    (tab, ind) => tab.label = (ind + 1) + "  \u202D" + tab.label.match(/(?:^\d+  \u202D)?(.+)/)[1]
);

Отсутствует

 

Board footer

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