Отправить комбинацию клавиш с помощью sendKeyEvent в расширении Mozilla / Firefox - PullRequest
1 голос
/ 02 февраля 2011

Я создаю расширение для Mozilla, и мне нужно отправить нажатия клавиш окна с помощью функции sendKeyEvent. У меня это работает, когда я посылаю одиночное нажатие клавиши в окно, но оно не работает, когда я пытаюсь отправить шаблон с несколькими нажатиями клавиш (т.е. SHIFT + 3 для отправки символа #). У кого-нибудь есть идеи как отправить несколько ключей в окно? Я пробовал следующий код, но он не работает:

var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils);
utils.sendKeyEvent("keydown", 51, 51, 4);
utils.sendKeyEvent("keypress", 51, 51, 4);
utils.sendKeyEvent("keyup", 51, 51, 4);

Я исследовал сеть, но не могу найти примеров сочетаний клавиш.

ОБНОВЛЕНИЕ :: ОК, поэтому я задал этот вопрос, потому что я создаю собственное расширение FF, которое будет взаимодействовать с веб-сайтом. На веб-сайте у них есть несколько сочетаний клавиш, а в расширении я хотел бы вызвать пару событий сочетаний клавиш. Одним из таких ярлыков является SHIFT + 3 (знак # фунта). Поэтому на сайте я считаю, что у них есть что-то вроде следующего:

function key_event(evt)
{
     if(evt.keyCode == 16) {
         if(evt.keyCode == 51){ 
           FIRE EVENT
         }
     }
}

Теперь кто-нибудь знает, как я могу вызвать это событие в javascript, поскольку sendKeyEvent, похоже, не вызывает его? Моя первоначальная мысль - создать цикл while, который нажимает клавишу SHIFT, и установить интервал для нажатия клавиши 3. В какой-то момент они должны быть запущены одновременно? Не уверен, что это будет лучшим способом. Любые рекомендации / идеи будут с благодарностью!

Спасибо за ваше время.

1 Ответ

1 голос
/ 09 февраля 2011

Для Octothorpe ("# символ") попробуйте отправить его код ASCII.То есть используйте 35 вместо 51.

Что-то вроде:

utils.sendKeyEvent("keypress", 35, 35, 4);
...