Страницы: 1
Есть плагин
/* * 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 русской раскладки).
Для thunderbird он устанавливается, но не работает, в каком направлении капать. Просто сам в плагинах под gecko вообще не бум-бум.
Отсутствует
Думаю, копать надо в направлении структуры окна 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); }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1