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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№980102-03-2016 12:18:25

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

Re: Custom Buttons

FMRUser :D, oleg953 спасибо.

Отредактировано vitalii201 (02-03-2016 12:21:04)

Отсутствует

 

№980202-03-2016 15:48:42

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

Господа, по моему вопросу как быть?

Отсутствует

 

№980302-03-2016 16:25:01

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 42.0

Re: Custom Buttons

broker
Если правильно понял то, бросаете портабле PotPlayer в папку профиля и прописываете свой путь. Создаете кнопку для запуска плеера. И Лиса и плеер на одной флешке и всегда под рукой.

Выделить код

Код:

var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
file.initWithPath(file.path + "\\PotPlayer\\PotPlayerMini.exe");
file.launch();

Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№980402-03-2016 18:53:06

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 197
UA: unknown 0.0

Re: Custom Buttons

хм.. я думал речь про PotPlayer для просмотра потокового видео, интегрированного  в браузер со всякими плюшками -  менюшками...

Отредактировано emlen (02-03-2016 18:53:32)


Portable SeaMonkey 2.39 forever

Отсутствует

 

№980502-03-2016 20:06:26

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

villa7
Здравствуйте, ваш код ето кнопка которая запускает пот-плеер. А кнопка которая в вспойлере, передает ссылку на аудио видео контент в пот-плеер и тот соответственно играет. Мне очень удобно на ютубе видео хорошего качества через плеер в мозилке притормаживает, а пот плеером иногда. Ноутбук не самый современный 2 ядра иинтел, но что есть то есть.

Отсутствует

 

№980602-03-2016 21:08:29

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 24.0

Re: Custom Buttons

broker пишет:

villa7
Здравствуйте, ваш код ето кнопка которая запускает пот-плеер. А кнопка которая в вспойлере, передает ссылку на аудио видео контент в пот-плеер и тот соответственно играет. Мне очень удобно на ютубе видео хорошего качества через плеер в мозилке притормаживает, а пот плеером иногда. Ноутбук не самый современный 2 ядра иинтел, но что есть то есть.

Так ты хочешь из кода запускать все плееры из кода как портативные или только пот плеер.

Отсутствует

 

№980702-03-2016 21:23:43

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

bunda1
Мне хватит пот-плеера из етого списка. Главное чтоб было в контекстном меню.

Отсутствует

 

№980802-03-2016 21:38:22

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 556
UA: Firefox 45.0

Re: Custom Buttons

broker пишет:

Мне хватит пот-плеера из етого списка. Главное чтоб было в контекстном меню.

тогда это пробуй https://addons.mozilla.org/ru/firefox/addon/potplayer-youtube-shortcut/?src=userprofile      http://s2.micp.ru/thumb/kj3sp.jpg

Отредактировано oleg953 (02-03-2016 21:43:25)

Отсутствует

 

№980902-03-2016 21:51:48

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 24.0

Re: Custom Buttons

broker пишет:

bunda1
Мне хватит пот-плеера из етого списка. Главное чтоб было в контекстном меню.

Положи папку портативного PotPlayer в папку профиля Firefox +

Выделить код

Код:

((contextMenu, el)=> {
   var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
   file.initWithPath(file.path + "\\PotPlayer\\PotPlayerMini.exe");

   var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), el);
   menuitem.setAttribute("label", "Открыть в PotPlayer");
   menuitem.setAttribute("class", "menuitem-iconic");
   menuitem.setAttribute("image", "moz-icon://file://" + file.path);
   addDestructor(()=> menuitem.remove() );   
   menuitem.onclick =()=> {
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      process.init(file);

      gContextMenu.onLink 
      ? process.run(false, [gContextMenu.getLinkURL(), "/add"], 2)
      : process.run(false, [content.location.href, "/add"], 2);
   }
})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-bookmarklink"));

Отсутствует

 

№981002-03-2016 22:31:29

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

bunda1
Спасибо, все робит:music:
oleg953
Спасибо за наводку посмотрю что и как.

Отсутствует

 

№981102-03-2016 22:40:26

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 24.0

Re: Custom Buttons

emlen

Выделить код

Код:

// Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014. ...................
addEventListener("dblclick", e=> {      
   var target = e.originalTarget;
              
   if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return;          
        var docTitle = (content.document.title || gBrowser.mCurrentTab.label).substr(0, 50);
        var folderId = PlacesUtils.getConcreteItemId(target._placesNode);
        var folderTitle = PlacesUtils.bookmarks.getItemTitle(folderId);
        var currentURI = Services.io.newURI(content.location, null, null);
        PlacesUtils.bookmarks.insertBookmark(folderId, currentURI, 0, docTitle);  

        // всплывающая подсказка ....
        var favicon = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/Portrait.png";
        Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
        .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); 
});

Отсутствует

 

№981203-03-2016 04:46:07

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

SendInfo
bunda1
Спасибо. Взял на вооружение оба варианта.

Отсутствует

 

№981303-03-2016 10:13:03

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 197
UA: unknown 0.0

Re: Custom Buttons

bunda1, спасибо


Portable SeaMonkey 2.39 forever

Отсутствует

 

№981403-03-2016 12:08:35

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.
Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.

Отсутствует

 

№981503-03-2016 12:35:24

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

Re: Custom Buttons

С недавнего времени:

скрытый текст
http://i.imgur.com/bJ0u7Gr.gif

Так только "по ссылке". "Вручную" добавляется и работает.
Custom Buttons 0.0.5.8.6
С чем может быть связано? Как исправить?

Отсутствует

 

№981603-03-2016 13:00:08

FMRUser
Участник
 
Группа: Members
Зарегистрирован: 01-03-2014
Сообщений: 814
UA: Firefox 45.0
Веб-сайт

Re: Custom Buttons

vitalii201 пишет:

С чем может быть связано?

Думаю с тем, что ссылку кликабельной делает.

Отсутствует

 

№981703-03-2016 13:21:09

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

Re: Custom Buttons

FMRUser, точно. Это Linkification шалил.
С Linkify Plus ссылка остаётся активной, но кнопка устанавливается.

скрытый текст
http://i.imgur.com/1ivFptv.gif

Отсутствует

 

№981803-03-2016 18:46:17

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

Здравствуйте господа, есть такая замечательная копка перевод з англо набранного в кириллицу, удобно если провтикал переключить раскладку клавиатуры. Но ее формат не очень удобен, нужно включить и выключить кнопку. Можно ее реализовать через контекстное меню, все одно нужно выделять тот текст который нужно переводить. У меня стоит кнопка автооткрития контекстменю если ленится то на все сто:P

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

Выделить код

Код:

this.noSelUseFullText = true;
this.convTableForward = {
    "\"": "@",
    ":": "^",
    ";": "$",
    "?": "&",
    ",": "?",
    "/": "|",
    ".": "/",
    "э": "'",
    "б": ",",
    "ю": ".",
    "Ж": ":",
    "ж": ";",
    "Б": "<",
    "Ю": ">",
    "Э": "\"",
    "х": "[",
    "ъ": "]",
    "ё": "`",
    "Х": "{",
    "Ъ": "}",
    "Ё": "~",
    "№": "#",
    "Ф": "A",
    "ф": "a",
    "И": "B",
    "и": "b",
    "С": "C",
    "с": "c",
    "В": "D",
    "в": "d",
    "У": "E",
    "у": "e",
    "А": "F",
    "а": "f",
    "П": "G",
    "п": "g",
    "Р": "H",
    "р": "h",
    "Ш": "I",
    "ш": "i",
    "О": "J",
    "о": "j",
    "Л": "K",
    "л": "k",
    "Д": "L",
    "д": "l",
    "Ь": "M",
    "ь": "m",
    "Т": "N",
    "т": "n",
    "Щ": "O",
    "щ": "o",
    "З": "P",
    "з": "p",
    "Й": "Q",
    "й": "q",
    "К": "R",
    "к": "r",
    "Ы": "S",
    "ы": "s",
    "Е": "T",
    "е": "t",
    "Г": "U",
    "г": "u",
    "М": "V",
    "м": "v",
    "Ц": "W",
    "ц": "w",
    "Ч": "X",
    "ч": "x",
    "Н": "Y",
    "н": "y",
    "Я": "Z",
    "я": "z",
    __proto__: null
};

this.convTableBackward = { __proto__: null };
for(var c in this.convTableForward)
    this.convTableBackward[this.convTableForward[c]] = c;

this.insertText = function(ta, text, noFocus) {
    var editor = ta.QueryInterface(Components.interfaces.nsIDOMNSEditableElement)
        .editor
        .QueryInterface(Components.interfaces.nsIPlaintextEditor);
    if(editor.flags & editor.eEditorReadonlyMask)
        return;

    var sTop = ta.scrollTop;
    var sHeight = ta.scrollHeight;
    var sLeft = ta.scrollLeft;
    // var sWidth = ta.scrollWidth;

    if(noFocus) {
        var val = ta.value;
        var ss = ta.selectionStart;
        ta.value = val.substring(0, ss) + text + val.substring(ta.selectionEnd);
        var se = ss + text.length;
        ta.selectionStart = se;
        ta.selectionEnd = se;
    }
    else {

        if(text)
            editor.insertText(text);
        else
            editor.deleteSelection(0);
    }

    ta.scrollTop = sTop + (ta.scrollHeight - sHeight);
    ta.scrollLeft = sLeft; // + (ta.scrollWidth - sWidth);
};
this.inPrimaryLayout = function(s) {
    var c;
    for(var i = 0, l = s.length; i < l; i++) {
        c = s.charAt(i);
        if(c in this.convTableForward)
            return true;
        if(c in this.convTableBackward)
            return false;
    }
    return false;
};
this.switchKeybLayout = function(convTable, s) {
    var r = "", c;
    for(var i = 0, l = s.length; i < l; i++) {
        c = s.charAt(i);
        r += c in convTable ? convTable[c] : c;
    }
    return r;
};
this.switchSelKeybLayout = function(s) {
    try {
        var ta = document.commandDispatcher.focusedElement;
        var val = ta.value;
        var sel = val.substring(ta.selectionStart, ta.selectionEnd);
    }
    catch(e) {
        return;
    }
    if(this.noSelUseFullText && !sel) {
        ta.selectionStart = 0;
        ta.selectionEnd = val.length;
        sel = val;
    }
    if(!sel)
        return;

    sel = this.switchKeybLayout(
        this.inPrimaryLayout(sel) ? this.convTableForward : this.convTableBackward,
        sel
    );
    this.insertText(ta, sel);
};

Отсутствует

 

№981904-03-2016 12:21:47

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

vv07 пишет:

bunda1

Не поможете с моей просьбой выше

vv07 пишет:

Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.
Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.

Отсутствует

 

№982004-03-2016 21:13:00

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 24.0

Re: Custom Buttons

vv07 пишет:

Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.
Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.

Выделить код

Код:

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%3ESearch%20and%20open+%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAIAEBAAAAAAAAB9AQAAJgAAACAgAAAAAAAA8gIAAKMBAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAFESURBVDjLpZNJSwNBEIXnt4lE4kHxovgT9BDwJHqPy0HEEOJBiAuCRg+KUdC4QS4KrpC4gCBGE3NQ48JsnZ6eZ3UOM6gjaePhQU93v6+qq2q0pqgeJj2S8EdJT1hr0OxBtKCD5iEd8QxDYpvhvOBAuMDKURX9C9aPu4GA1GEVkzvMg10UBfYveWAWgYAP00V01fa+R9M2bA51wJvhIn3qR+ybt3D3JNQBE5sMjCIOLFpoHzOwdsLRO22qA6R6kiZiWwxUvy/PUQZIhYZ1vFM9cvcOOsYNdcBgysISdSJBnZjJMlR0Fw8vAp0xoz5gao/h+NZBy4i/10XGwrPA+hmvDyhVRG2Avu/LwcrkFADZa16L1h330w1RNgc3DiJzCpPYRm1bpveXX11clQR28xwblHpk1vq1iP/5mcoS0CoXDZiL0vsJ+dzfl+3T/VYAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAK5SURBVFjDxVfrSxRRFJ9/Jta/oyWjF5XQm6D6EkHRgygIIgjUTcueVgqVWSRRkppEUQYWWB8ye1iGWilWlo/Ude489s7M6Zw7D9dlt53dmd29cFiWvXvO77x+51xpaaUsoSxBaUWZQ4ECy5xji2xKZDyCMlMEw6lCNiOSgwZKJK1SkcKeSealfP64t0mBjl4Ow39MkDUL0p2RSROOtqhZdeUEYM1pBl39XCg/fEeFtWcY7G9W4csvUxjlBkCsQ4Nt9QyWVfvT6RsAKXw3aoDGATZeYIt+W1kjw7cJG0RctWDTRebbKd8A6h5pwsDb70ba3w/eUr3wt/cmwgfw6Yft4TNMQaY7o1P2ncm4FT4ANQH/jQBJ2xv7kqIXEADDql8eS3+n8bku7oxNm+EDIM/dU92upb3T/NJGeaNbDx/AsbsLRUY5Xn92caWXY5d8RV6gWllxSg4fAEnTC90DQW13BLlgXR2D3dcUeDVkwOthA1bXspxILWcm3HdThcfvufB26LcJpkOEAz9NKI/lzqpSEC7feol5EWnpSeSlIxCALUkApmULdjUqxQVAQnl3D/X/yQda4QBEq2TYc12By091MQ17Bg3R88nHKlQbVmHvj89awNBLYrwT9zXY2aBAxTkGFdiSxP/Jp6FLDw+AS7GfsdJTJ2EqSO5khD43nGfBARy/ZxOQgZHe7GPM1jzUvChUtmnBAXQPcKGMJp3fdFGq6NByEhiAO4b/YptFfQJwNyQ/bZkVQGcf90Ja25ndIyrKBOa/f8wIpwi3X1G8UcxNu7ozUS7tiH0jBswwS3RIaF1w6LYKU/ML2+8sGnjygQswtKrVIy/Qd9qQP6LnO64q4fPAKpxyZIymHo1jWk6p1ag2BsdNwQMHcC+M5kHFJX+YlPxpVlbCx2mZ5DzPI04k4kUwHHdskU3pH76iftG8yWlkAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20//%20%u041B%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20e.originalTarget.nodeName%20%21%3D%20%22xul%3Atoolbarbutton%22%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21text%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28text%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20false%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20//%20%u0421%u041A%u041C%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow%2C%20doc%20%3D%20win.document%3B%0A%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc%2C%20winSel%20%3D%20win.getSelection%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20winSel.toString%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sel.appendChild%28%20winSel.getRangeAt%280%29.cloneContents%28%29%20%29%3B%0A%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%20var%20str%20%3D%20%27%27%2C%20links%20%3D%20sel.getElementsByTagName%28%27a%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20links.length%20%3E%2016%20%26%26%20%21confirm%28%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27%20+%20links.length%20+%20%27%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%3F%27%29%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20for%28%20var%20i%20%3D%200%2C%20lnk%3B%20lnk%20%3D%20links%5Bi%5D%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20lnk.href%29%20gBrowser.addTab%28%20lnk.href%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%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%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%20%7B%20//%20%u041F%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21url%20%29%20gBrowser.loadOneTab%28%20url%2C%20null%2C%20null%2C%20null%2C%20false%2C%20false%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20..................................................................................................%0Avar%20_this%20%3D%20this%3B%0Avar%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0430%u043C%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.........................................%0Afunction%20searchService%28%29%20%7B%0A%20%20%20return%20Components.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Components.interfaces.nsIBrowserSearchService%29%3B%0A%7D%0A%0Athis.selectEngine%20%3D%20function%28aNode%2C%20aEvent%29%20%7B%0A%20%20%20var%20engine%20%3D%20aEvent.target.engine%3B%0A%20%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20%20ss.currentEngine%20%3D%20ss.getEngineByName%28engine.name%29%3B%0A%20%20%20aNode.engine%20%3D%20engine%3B%0A%20%20%20aNode.image%20%3D%20aEvent.target.getAttribute%28%22src%22%29%3B%0A%7D%0A%0Athis.populateMenu%20%3D%20function%28aNode%29%20%7B%0A%20%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20%20var%20engines%20%3D%20ss.getVisibleEngines%28%7B%20%7D%29%3B%0A%20%20%20const%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20%20while%28%20aNode.firstChild%20%26%26%20aNode.firstChild.localName%20%21%3D%20%22menuseparator%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20aNode.removeChild%28%20aNode.firstChild%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20for%20%28%20var%20i%20%3D%20engines.length%20-%201%3B%20i%20%3E%3D%200%3B%20i--%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20mi%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20mi.id%20%3D%20%22cb-search-%22%20+%20engines%5Bi%5D.name%3B%0A%20%20%20%20%20%20%20%20%20mi.className%20%3D%20%22menuitem-iconic%20searchbar-engine-menuitem%22%3B%0A%20%20%20%20%20%20%20%20%20mi.setAttribute%28%22label%22%2C%20engines%5Bi%5D.name%29%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20engines%5Bi%5D.iconURI%20%29%20%20mi.setAttribute%28%22src%22%2C%20engines%5Bi%5D.iconURI.spec%20%29%3B%0A%20%20%20%20%20%20%20%20%20mi.engine%20%3D%20engines%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20mi.engine%20%3D%3D%20ss.currentEngine%20%29%0A%20%20%20%20%20%20%20%20%20mi.style.fontWeight%20%3D%20%22bold%22%3B%0A%20%20%20%20%20%20%20%20%20mi.setAttribute%28%22onclick%22%2C%20%22event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3BparentNode.parentNode.selectEngine%28parentNode.parentNode%2C%20event%29%22%29%3B%0A%20%20%20%20%20%20%20%20%20aNode.insertBefore%28mi%2C%20aNode.firstChild%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0Athis.currentEngine%20%3D%20searchService%28%29.currentEngine%3B%0Avar%20ss%20%3D%20searchService%28%29%3B%0Athis.engine%20%3D%20ss.currentEngine%3B%0Athis.image%20%3D%20this.engine.iconURI.spec%3B%0A%0Avar%20mp%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Amp.setAttribute%28%22onpopupshowing%22%2C%20%22parentNode.populateMenu%28this%29%22%29%3B%0Amp.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0Avar%20managerSeparator%20%3D%20mp.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0AmanagerSeparator.id%20%3D%20%22cb-searchbutton-separator%22%0Avar%20managerItem%20%3D%20mp.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0AmanagerItem.setAttribute%28%22label%22%2C%20%22Manage%20Search%20Engines...%22%29%3B%0AmanagerItem.setAttribute%28%22oncommand%22%2C%20%22openDialog%28%27chrome%3A//browser/content/search/engineManager.xul%27%2C%20%22%20+%20%22%27engineManager%27%2C%20%27chrome%2C%20dialog%3Dno%27%29%22%29%3B%0Athis.type%20%3D%20%22menu-button%22%3B%0A%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..............%20*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20window.content.focus%28%29%3B%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%0A%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20var%20str%20%3D%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%0A%20%20%20%20%20%20%20alertsService.showAlertNotification%28_this.image%2C%20_this.label%2C%20str%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u043E%u0442%u0441%u0442%u0443%u043F%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................................%0Athis.tooltipText%20%3D%20%22Search%20and%20open%20%5Cn%u041B%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430/%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%5Cn%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430/%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%22%3B%0A//this.setAttribute%28%22style%22%2C%20%22margin-right%3A%2010px%3B%22%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%5Bnull%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№982104-03-2016 21:19:05

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

bunda1
По моему вопросу можете помочь.

Отсутствует

 

№982204-03-2016 22:25:09

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 46.0

Re: Custom Buttons

Здравствуйте.
Долго с полгода был лишен интернета и многое пропустил в ломании существующего в фф. Обновил свою ночнушку, с где-то 44-ой до текущей, долго матерился, чинил поломанные (из того, что сам мог/нашел) стили/аддоны/кнопки и т.д., но осталось одно: те кнопки, что пишут свое свое состояние в конфиг. Я так понял, что это связанно с выпиливанием fuel'а? Когда-то здесь проскакивала информация от Dumby о грядущем. Как бы по быстрому починить кнопки с подобным:

Выделить код

Код:

var s = 'dom.indexedDB.enabled';
var pref = Application.prefs.get(s);
this.onclick = function(e) {
     if ( e.button == 0 ) { 
          pref.value = !pref.value;
     }
};
function toggleImage() {   
self.style.filter = pref.value ? '' : 'opacity(50%)';   
self.checked =  pref.value ? 'true' : '';
};
toggleImage();
gPrefService.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) });

Сил уже нет самому искать. Третий день только и ковыряюсь с поломанным...

Спасибо.

Отсутствует

 

№982304-03-2016 22:51:50

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 24.0

Re: Custom Buttons

broker пишет:

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

Та же самая кнопка добавляет пункт Преобразование из латиницы в кириллицу и наоборот в контекстное меню:

Выделить код

Код:

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%3EURLCorrector%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.noSelUseFullText%20%3D%20true%3B%0Athis.convTableForward%20%3D%20%7B%0A%20%20%20%20%22%5C%22%22%3A%20%22@%22%2C%0A%20%20%20%20%22%3A%22%3A%20%22%5E%22%2C%0A%20%20%20%20%22%3B%22%3A%20%22%24%22%2C%0A%20%20%20%20%22%3F%22%3A%20%22%26%22%2C%0A%20%20%20%20%22%2C%22%3A%20%22%3F%22%2C%0A%20%20%20%20%22/%22%3A%20%22%7C%22%2C%0A%20%20%20%20%22.%22%3A%20%22/%22%2C%0A%20%20%20%20%22%u044D%22%3A%20%22%27%22%2C%0A%20%20%20%20%22%u0431%22%3A%20%22%2C%22%2C%0A%20%20%20%20%22%u044E%22%3A%20%22.%22%2C%0A%20%20%20%20%22%u0416%22%3A%20%22%3A%22%2C%0A%20%20%20%20%22%u0436%22%3A%20%22%3B%22%2C%0A%20%20%20%20%22%u0411%22%3A%20%22%3C%22%2C%0A%20%20%20%20%22%u042E%22%3A%20%22%3E%22%2C%0A%20%20%20%20%22%u042D%22%3A%20%22%5C%22%22%2C%0A%20%20%20%20%22%u0445%22%3A%20%22%5B%22%2C%0A%20%20%20%20%22%u044A%22%3A%20%22%5D%22%2C%0A%20%20%20%20%22%u0451%22%3A%20%22%60%22%2C%0A%20%20%20%20%22%u0425%22%3A%20%22%7B%22%2C%0A%20%20%20%20%22%u042A%22%3A%20%22%7D%22%2C%0A%20%20%20%20%22%u0401%22%3A%20%22%7E%22%2C%0A%20%20%20%20%22%u2116%22%3A%20%22%23%22%2C%0A%20%20%20%20%22%u0424%22%3A%20%22A%22%2C%0A%20%20%20%20%22%u0444%22%3A%20%22a%22%2C%0A%20%20%20%20%22%u0418%22%3A%20%22B%22%2C%0A%20%20%20%20%22%u0438%22%3A%20%22b%22%2C%0A%20%20%20%20%22%u0421%22%3A%20%22C%22%2C%0A%20%20%20%20%22%u0441%22%3A%20%22c%22%2C%0A%20%20%20%20%22%u0412%22%3A%20%22D%22%2C%0A%20%20%20%20%22%u0432%22%3A%20%22d%22%2C%0A%20%20%20%20%22%u0423%22%3A%20%22E%22%2C%0A%20%20%20%20%22%u0443%22%3A%20%22e%22%2C%0A%20%20%20%20%22%u0410%22%3A%20%22F%22%2C%0A%20%20%20%20%22%u0430%22%3A%20%22f%22%2C%0A%20%20%20%20%22%u041F%22%3A%20%22G%22%2C%0A%20%20%20%20%22%u043F%22%3A%20%22g%22%2C%0A%20%20%20%20%22%u0420%22%3A%20%22H%22%2C%0A%20%20%20%20%22%u0440%22%3A%20%22h%22%2C%0A%20%20%20%20%22%u0428%22%3A%20%22I%22%2C%0A%20%20%20%20%22%u0448%22%3A%20%22i%22%2C%0A%20%20%20%20%22%u041E%22%3A%20%22J%22%2C%0A%20%20%20%20%22%u043E%22%3A%20%22j%22%2C%0A%20%20%20%20%22%u041B%22%3A%20%22K%22%2C%0A%20%20%20%20%22%u043B%22%3A%20%22k%22%2C%0A%20%20%20%20%22%u0414%22%3A%20%22L%22%2C%0A%20%20%20%20%22%u0434%22%3A%20%22l%22%2C%0A%20%20%20%20%22%u042C%22%3A%20%22M%22%2C%0A%20%20%20%20%22%u044C%22%3A%20%22m%22%2C%0A%20%20%20%20%22%u0422%22%3A%20%22N%22%2C%0A%20%20%20%20%22%u0442%22%3A%20%22n%22%2C%0A%20%20%20%20%22%u0429%22%3A%20%22O%22%2C%0A%20%20%20%20%22%u0449%22%3A%20%22o%22%2C%0A%20%20%20%20%22%u0417%22%3A%20%22P%22%2C%0A%20%20%20%20%22%u0437%22%3A%20%22p%22%2C%0A%20%20%20%20%22%u0419%22%3A%20%22Q%22%2C%0A%20%20%20%20%22%u0439%22%3A%20%22q%22%2C%0A%20%20%20%20%22%u041A%22%3A%20%22R%22%2C%0A%20%20%20%20%22%u043A%22%3A%20%22r%22%2C%0A%20%20%20%20%22%u042B%22%3A%20%22S%22%2C%0A%20%20%20%20%22%u044B%22%3A%20%22s%22%2C%0A%20%20%20%20%22%u0415%22%3A%20%22T%22%2C%0A%20%20%20%20%22%u0435%22%3A%20%22t%22%2C%0A%20%20%20%20%22%u0413%22%3A%20%22U%22%2C%0A%20%20%20%20%22%u0433%22%3A%20%22u%22%2C%0A%20%20%20%20%22%u041C%22%3A%20%22V%22%2C%0A%20%20%20%20%22%u043C%22%3A%20%22v%22%2C%0A%20%20%20%20%22%u0426%22%3A%20%22W%22%2C%0A%20%20%20%20%22%u0446%22%3A%20%22w%22%2C%0A%20%20%20%20%22%u0427%22%3A%20%22X%22%2C%0A%20%20%20%20%22%u0447%22%3A%20%22x%22%2C%0A%20%20%20%20%22%u041D%22%3A%20%22Y%22%2C%0A%20%20%20%20%22%u043D%22%3A%20%22y%22%2C%0A%20%20%20%20%22%u042F%22%3A%20%22Z%22%2C%0A%20%20%20%20%22%u044F%22%3A%20%22z%22%2C%0A%20%20%20%20__proto__%3A%20null%0A%7D%3B%0A%0Athis.convTableBackward%20%3D%20%7B%20__proto__%3A%20null%20%7D%3B%0Afor%28var%20c%20in%20this.convTableForward%29%0A%20%20%20%20this.convTableBackward%5Bthis.convTableForward%5Bc%5D%5D%20%3D%20c%3B%0A%0Athis.insertText%20%3D%20function%28ta%2C%20text%2C%20noFocus%29%20%7B%0A%20%20%20%20var%20editor%20%3D%20ta.QueryInterface%28Components.interfaces.nsIDOMNSEditableElement%29%0A%20%20%20%20%20%20%20%20.editor%0A%20%20%20%20%20%20%20%20.QueryInterface%28Components.interfaces.nsIPlaintextEditor%29%3B%0A%20%20%20%20if%28editor.flags%20%26%20editor.eEditorReadonlyMask%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20var%20sTop%20%3D%20ta.scrollTop%3B%0A%20%20%20%20var%20sHeight%20%3D%20ta.scrollHeight%3B%0A%20%20%20%20var%20sLeft%20%3D%20ta.scrollLeft%3B%0A%20%20%20%20//%20var%20sWidth%20%3D%20ta.scrollWidth%3B%0A%0A%20%20%20%20if%28noFocus%29%20%7B%0A%20%20%20%20%20%20%20%20var%20val%20%3D%20ta.value%3B%0A%20%20%20%20%20%20%20%20var%20ss%20%3D%20ta.selectionStart%3B%0A%20%20%20%20%20%20%20%20ta.value%20%3D%20val.substring%280%2C%20ss%29%20+%20text%20+%20val.substring%28ta.selectionEnd%29%3B%0A%20%20%20%20%20%20%20%20var%20se%20%3D%20ss%20+%20text.length%3B%0A%20%20%20%20%20%20%20%20ta.selectionStart%20%3D%20se%3B%0A%20%20%20%20%20%20%20%20ta.selectionEnd%20%3D%20se%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%0A%20%20%20%20%20%20%20%20if%28text%29%0A%20%20%20%20%20%20%20%20%20%20%20%20editor.insertText%28text%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20editor.deleteSelection%280%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20ta.scrollTop%20%3D%20sTop%20+%20%28ta.scrollHeight%20-%20sHeight%29%3B%0A%20%20%20%20ta.scrollLeft%20%3D%20sLeft%3B%20//%20+%20%28ta.scrollWidth%20-%20sWidth%29%3B%0A%7D%3B%0Athis.inPrimaryLayout%20%3D%20function%28s%29%20%7B%0A%20%20%20%20var%20c%3B%0A%20%20%20%20for%28var%20i%20%3D%200%2C%20l%20%3D%20s.length%3B%20i%20%3C%20l%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20c%20%3D%20s.charAt%28i%29%3B%0A%20%20%20%20%20%20%20%20if%28c%20in%20this.convTableForward%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20if%28c%20in%20this.convTableBackward%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%7D%3B%0Athis.switchKeybLayout%20%3D%20function%28convTable%2C%20s%29%20%7B%0A%20%20%20%20var%20r%20%3D%20%22%22%2C%20c%3B%0A%20%20%20%20for%28var%20i%20%3D%200%2C%20l%20%3D%20s.length%3B%20i%20%3C%20l%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20c%20%3D%20s.charAt%28i%29%3B%0A%20%20%20%20%20%20%20%20r%20+%3D%20c%20in%20convTable%20%3F%20convTable%5Bc%5D%20%3A%20c%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20r%3B%0A%7D%3B%0Athis.switchSelKeybLayout%20%3D%20function%28s%29%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20var%20ta%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20%20var%20val%20%3D%20ta.value%3B%0A%20%20%20%20%20%20%20%20var%20sel%20%3D%20val.substring%28ta.selectionStart%2C%20ta.selectionEnd%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28this.noSelUseFullText%20%26%26%20%21sel%29%20%7B%0A%20%20%20%20%20%20%20%20ta.selectionStart%20%3D%200%3B%0A%20%20%20%20%20%20%20%20ta.selectionEnd%20%3D%20val.length%3B%0A%20%20%20%20%20%20%20%20sel%20%3D%20val%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28%21sel%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20sel%20%3D%20this.switchKeybLayout%28%0A%20%20%20%20%20%20%20%20this.inPrimaryLayout%28sel%29%20%3F%20this.convTableForward%20%3A%20this.convTableBackward%2C%0A%20%20%20%20%20%20%20%20sel%0A%20%20%20%20%29%3B%0A%20%20%20%20this.insertText%28ta%2C%20sel%29%3B%0A%7D%3B%0A%0A%0A%28%28contextMenu%2C%20paste%29%3D%3E%20%7B%0A%20%20%20var%20menuitem%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20paste%29%3B%20%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u041F%u0440%u0435%u043E%u0431%u0440%u0430%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u0438%u0437%20%u043B%u0430%u0442%u0438%u043D%u0438%u0446%u044B%20%u0432%20%u043A%u0438%u0440%u0438%u043B%u043B%u0438%u0446%u0443%20%u0438%20%u043D%u0430%u043E%u0431%u043E%u0440%u043E%u0442%22%29%3B%0A%20%20%20menuitem.onclick%20%3D%28%29%3D%3E%20this.switchSelKeybLayout%28%29%3B%0A%20%20%20addEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menuitem.hidden%20%3D%20paste.hidden%2C%20true%2C%20contextMenu%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20menuitem.remove%28%29%20%29%3B%0A%7D%29%28document.getElementById%28%22contentAreaContextMenu%22%29%2C%20document.getElementById%28%22context-paste%22%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.switchSelKeybLayout%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BAlt+z%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

Добавлено 04-03-2016 23:12:07

turbot пишет:

кнопки, что пишут свое свое состояние в конфиг. Я так понял, что это связанно с выпиливанием fuel'а? Как бы по быстрому починить кнопки с подобным:

Пример:

Выделить код

Код:

var s = 'dom.indexedDB.enabled';
this._handleClick =()=> cbu.setPrefs(s, !cbu.getPrefs(s));

function toggleImage() {
   var val = cbu.getPrefs(s);   
   self.style.filter = val ? '' : 'opacity(50%)';   
   self.checked = val;
};
toggleImage();
gPrefService.addObserver(s, toggleImage, false);
addDestructor(()=> gPrefService.removeObserver(s, toggleImage) );

Отредактировано bunda1 (04-03-2016 23:12:07)

Отсутствует

 

№982404-03-2016 23:16:32

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 47.0

Re: Custom Buttons

bunda1
Большое спасибо! :beer:
Не так уж много и переделывать, оказывается. Фух. :)

P.S.: Поздравляю (ну или соболезную) с модераторством.

Отредактировано turbot (04-03-2016 23:19:05)

Отсутствует

 

№982505-03-2016 00:01:47

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: Custom Buttons

bunda1
Спасибо большое Вы лутший:cool:, благодаря вашим наработкам пользоваться Лисой одно удовольствие:music:.
Удачи Вам и большого терпения.

Отсутствует

 

Board footer

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