>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как перенести плагин из ff в thunderbirg. http://forum.mozilla-russia.org/viewtopic.php?id=13010 |
[vt]Vitus > 10-10-2006 11:10:42 |
Есть плагин Выделить код Код:/* * Russian hot keys bugfix. * Copyrigh (c) 2006 by Relan (relan@bk.ru) * This software is distributed under the GNU General Public License version 2. */ // codes translation table var RhkbTable = new Array(0x46, 0x2C, 0x44, 0x55, 0x4C, 0x54, 0x3B, 0x50, 0x42, 0x51, 0x52, 0x4B, 0x56, 0x59, 0x4A, 0x47, 0x48, 0x43, 0x4E, 0x45, 0x41, 0x5B var Rhkbf = { // А-Я: 0x0410-0x042F, а-я: 0x0430-0x44F // АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ => F,DULT;PBQRKVYJGHCNEA[WXIO]SM'.Z // абвгдежзийклмнопрстуфхцчшщъыьэюя => f,dult;pbqrkvyjghcnea[wxio]sm'.z keypress: function(evt) { if (!evt.altKey && !evt.ctrlKey) return; if (evt.charCode < 0x0410 /* А */ || evt.charCode > 0x0442F /* я */) return; var trevt = document.createEvent("KeyboardEvent"); trevt.initKeyEvent(evt.type, evt.canBubble, evt.cancelable, evt.view, evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey, evt.keyCode, RhkbTable[evt.charCode - 0x0410]); evt.preventDefault(); evt.target.dispatchEvent(trevt); }, load: function() { try { window.removeEventListener("keypress", Rhkbf.keypress, true); } catch(ex) { } window.addEventListener("keypress", Rhkbf.keypress, true); } } window.addEventListener("load", function() { Rhkbf.load(); }, false); Написан для ff и на нём работает (под linux исправляет hot key русской раскладки). |
Anton > 10-10-2006 12:19:13 |
Думаю, копать надо в направлении структуры окна tb. Возможно, в его панелях стоят собственные обработчики событий клавиатуры, прерывающие распространение события после обработки. Может быть, будет работать, если заменить Выделить код Код:load: function() { try { window.removeEventListener("keypress", Rhkbf.keypress, true); } catch(ex) { } window.addEventListener("keypress", Rhkbf.keypress, true); } на Выделить код Код:load: function() { try { document.getElementById("mailContent").removeEventListener("keypress", Rhkbf.keypress, true); } catch(ex) { } document.getElementById("mailContent").window.addEventListener("keypress", Rhkbf.keypress, true); } или Выделить код Код:load: function() { try { document.getElementById("mailContentWrapper").removeEventListener("keypress", Rhkbf.keypress, true); } catch(ex) { } document.getElementById("mailContentWrapper").window.addEventListener("keypress", Rhkbf.keypress, true); } или Выделить код Код:load: function() { try { document.getElementById("folderPaneBox").removeEventListener("keypress", Rhkbf.keypress, true); document.getElementById("messengerBox").removeEventListener("keypress", Rhkbf.keypress, true); document.getElementById("messagepanebox").removeEventListener("keypress", Rhkbf.keypress, true); } catch(ex) { } document.getElementById("folderPaneBox").window.addEventListener("keypress", Rhkbf.keypress, true); document.getElementById("messengerBox").window.addEventListener("keypress", Rhkbf.keypress, true); document.getElementById("messagepanebox").window.addEventListener("keypress", Rhkbf.keypress, true); } |
[vt]Vitus > 10-10-2006 13:32:27 |
thx буду пробовать капать . |