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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№110-10-2006 11:10:42

[vt]Vitus
Участник
 
Группа: Members
Зарегистрирован: 28-02-2005
Сообщений: 13

Как перенести плагин из ff в thunderbirg.

Есть плагин

Выделить код

Код:

/*
 * 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 вообще не бум-бум. :)

Отсутствует

 

№210-10-2006 12:19:13

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Как перенести плагин из ff в thunderbirg.

Думаю, копать надо в направлении структуры окна 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ентов на части порвет !!!

Отсутствует

 

№310-10-2006 13:32:27

[vt]Vitus
Участник
 
Группа: Members
Зарегистрирован: 28-02-2005
Сообщений: 13

Re: Как перенести плагин из ff в thunderbirg.

thx буду пробовать капать :).

Отсутствует

 

Board footer

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