Я пытаюсь изменить сочетание клавиш для отображения контекстного меню в Firefox (эквивалент нажатия Shift-F10
в Linux или Windows или Control-Space
в OS X). Кажется, что этот ярлык обрабатывается на другом уровне, чем обычные сочетания клавиш (он не отображается в расширении Keyconfig, которое позволяет переназначить большинство сочетаний клавиш).
Я попытался создать события клавиш и мыши, чтобы вызвать контекстное меню (используя следующий код, который сопоставлен с сочетанием клавиш с помощью Keyconfig), но они до сих пор не работали. Я не смог отследить, где в исходном коде Firefox обрабатывает сочетание клавиш для контекстного меню или есть ли одна функция, которую я мог бы вызвать, чтобы показать ее.
Событие мыши:
var focused = document.commandDispatcher.focusedElement;
if(!focused) focused = document.commandDispatcher.focusedWindow.document.activeElement;
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 2, null);
focused.dispatchEvent(evt);
Ключевое событие:
var focused = document.commandDispatcher.focusedElement;
if(!focused) focused = document.commandDispatcher.focusedWindow.document.activeElement;
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keypress", true, true, null, false, false, true, false, 0x79, 0);
focused.dispatchEvent(evt);