FMRUser , oleg953 спасибо.
Отредактировано vitalii201 (02-03-2016 12:21:04)
Отсутствует
broker
Если правильно понял то, бросаете портабле PotPlayer в папку профиля и прописываете свой путь. Создаете кнопку для запуска плеера. И Лиса и плеер на одной флешке и всегда под рукой.
var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\PotPlayer\\PotPlayerMini.exe"); file.launch();
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
хм.. я думал речь про PotPlayer для просмотра потокового видео, интегрированного в браузер со всякими плюшками - менюшками...
Отредактировано emlen (02-03-2016 18:53:32)
SeaMonkey 2.39 forever
Отсутствует
villa7
Здравствуйте, ваш код ето кнопка которая запускает пот-плеер. А кнопка которая в вспойлере, передает ссылку на аудио видео контент в пот-плеер и тот соответственно играет. Мне очень удобно на ютубе видео хорошего качества через плеер в мозилке притормаживает, а пот плеером иногда. Ноутбук не самый современный 2 ядра иинтел, но что есть то есть.
Отсутствует
villa7
Здравствуйте, ваш код ето кнопка которая запускает пот-плеер. А кнопка которая в вспойлере, передает ссылку на аудио видео контент в пот-плеер и тот соответственно играет. Мне очень удобно на ютубе видео хорошего качества через плеер в мозилке притормаживает, а пот плеером иногда. Ноутбук не самый современный 2 ядра иинтел, но что есть то есть.
Так ты хочешь из кода запускать все плееры из кода как портативные или только пот плеер.
Отсутствует
Отсутствует
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"));
Отсутствует
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, ""); });
Отсутствует
Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.
Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.
Отсутствует
С недавнего времени:
Отсутствует
FMRUser, точно. Это Linkification шалил.
С Linkify Plus ссылка остаётся активной, но кнопка устанавливается.
Отсутствует
Здравствуйте господа, есть такая замечательная копка перевод з англо набранного в кириллицу, удобно если провтикал переключить раскладку клавиатуры. Но ее формат не очень удобен, нужно включить и выключить кнопку. Можно ее реализовать через контекстное меню, все одно нужно выделять тот текст который нужно переводить. У меня стоит кнопка автооткрития контекстменю если ленится то на все сто
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); };
Отсутствует
bunda1
Не поможете с моей просьбой выше
Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.
Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.
Отсутствует
Друзья! Снова к вам. Есть замечательная кнопка 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
Отсутствует
Здравствуйте.
Долго с полгода был лишен интернета и многое пропустил в ломании существующего в фф. Обновил свою ночнушку, с где-то 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 ) });
Сил уже нет самому искать. Третий день только и ковыряюсь с поломанным...
Спасибо.
Отсутствует
Здравствуйте господа, есть такая замечательная копка перевод з англо набранного в кириллицу, удобно если провтикал переключить раскладку клавиатуры. Можно ее реализовать через контекстное меню, все одно нужно выделять тот текст который нужно переводить.
Та же самая кнопка добавляет пункт Преобразование из латиницы в кириллицу и наоборот в контекстное меню:
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
кнопки, что пишут свое свое состояние в конфиг. Я так понял, что это связанно с выпиливанием 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)
Отсутствует