Переопределение сочетаний клавиш Chrome в пользовательском сценарии
Я написал пользовательский скрипт , который выполняет определенную операцию над выделенным текстом в текстовой области при нажатии CTRL+сдвиг+B .
Это делается путем регистрации события keypress для textarea и последующей проверки нажатой клавиши. Чтобы браузер не обрабатывал комбинацию клавиш, я использую метод preventDefault(), который отлично работает в Firefox (окно библиотеки не открывается, но вместо него выполняется мой код).
Однако в Chrome, что комбинация клавиш открывает панель закладок, и событие keypress даже не запускается.
Интересно, есть ли способ создать такой ярлык в Chrome. Он должен работать с userscript-реальное расширение не вариант, так как я предпочел бы не поддерживать две разные "версии" для Firefox и Chrome.
1 ответ:
По-видимому, пользовательский интерфейс Chrome запускает
keydownвместоkeypress(Эта статья Quirksmode может подсказать, почему --keypressпредположительно срабатывает, когда вставляется фактический символ).Поэтому меняем соответствующую строку на:
$(document).on('keydown', '.wmd-input', function(e) {Похоже, работает как на FF, так и на Chrome.
Comments