Переопределение сочетаний клавиш Chrome в пользовательском сценарии



Я написал пользовательский скрипт , который выполняет определенную операцию над выделенным текстом в текстовой области при нажатии CTRL+сдвиг+B .



Это делается путем регистрации события keypress для textarea и последующей проверки нажатой клавиши. Чтобы браузер не обрабатывал комбинацию клавиш, я использую метод preventDefault(), который отлично работает в Firefox (окно библиотеки не открывается, но вместо него выполняется мой код).



Однако в Chrome, что комбинация клавиш открывает панель закладок, и событие keypress даже не запускается.



Интересно, есть ли способ создать такой ярлык в Chrome. Он должен работать с userscript-реальное расширение не вариант, так как я предпочел бы не поддерживать две разные "версии" для Firefox и Chrome.

634   1  

1 ответ:

По-видимому, пользовательский интерфейс Chrome запускает keydown вместо keypress (Эта статья Quirksmode может подсказать, почему -- keypress предположительно срабатывает, когда вставляется фактический символ).

Поэтому меняем соответствующую строку на:

$(document).on('keydown', '.wmd-input', function(e) {

Похоже, работает как на FF, так и на Chrome.

Comments

    Ничего не найдено.