2015-12-31 2 views
1

Я много огляделся, и знаю, что вы можете обнаружить клавиши ctrl (ctrl + c, ctrl + v и т. Д.) С событием keydown в javascript и часто используется так, чтобы событие не обрабатывается другими процессами, однако я хочу обработать его через событие нажатия клавиши (назначение обработки одним событием, а не 2, и, надеюсь, для обеспечения согласованности при использовании других сочетаний клавиш для одной и той же функции) теперь кажется, что это должно быть возможно после того, как весь объект события нажатия клавиши имеет логические свойства для alt, ctrl, shift и т. д., и код символа для событий нажатия клавиш, которые проходят через, отличается от самого ключа (например, z keypress event - charCode 122, где ctrl + z keypress событие - charCode 26). Итак, вопрос в том, есть ли способ предотвратить перехват ключей ctrl по умолчанию, чтобы событие keypress могло их обрабатывать?Работа с клавишами Ctrl с нажатием клавиши

для моего конкретного примера Я использую хром, но также хочу получить общие ответы.

UPDATE

ив обнаружили, что все значения по умолчанию клавиш Ctrl можно предотвратить (например, Ctrl + S пытается сохранить страницу), используя внутри KeyDown события, как этот

$('element').keydown(function(event){ 
    if(event.ctrlKey){ 
     event.preventDefault(); 
    } 
}); 

(примечание: это предотвращает предотвращение недопустимых значений по умолчанию, например, ctrl + t для новой вкладки в хроме)

Однако проблема заключается в том, что это также останавливает событие нажатия клавиши, если есть способ затем передать событие t о событие нажатия клавиши таким образом, что будет иметь свойства нажатия клавиш (имеются в виду такие вещи, как charCode теперь будет определен)

ответ

0

Читая это с другого сайта он заявляет -

клавиатуры события является одной из диких частей разработка интерфейса. Там являются несоответствия и кросс-браузерные проблемы.

Но все же есть рецепты, которые легко справляются с обычными ситуациями.

Существуют следующие события клавиатуры:

KeyDown
нажатии клавиши вниз.

keypress
Клавиша с символом нажата.

keyup
Ключ от выпуска.


Существует фундаментальное различие между нажатием клавиши и нажатием клавиши.

Keydown триггеры на любом нажатии клавиши и дает скан-код. Keypress триггеры после keydown и дает char-код, но он гарантирован только для символов.

Учитывая это, ключ управления не может быть зафиксирован нажатием клавиши, потому что он не генерирует символ.

Дополнительную информацию можно найти здесь по еще более конкретной информации.

http://javascript.info/tutorial/keyboard-events

Надеется, что это помогает

+0

Я думаю, вы пропустили всю точку, я хотел, чтобы захватить его с помощью ключа пресса-конференции, которая была всей целью вопроса – Binvention

+0

Как я специально сказал, что я знаю, что вы можете захватить это с ключом вниз, но я хочу сделать это нажатием клавиши – Binvention

+0

Я вижу вашу проблему. Если я изменю свой ответ. Кажется, вы не сможете этого сделать, так как keydown и keyup отличаются от нажатия клавиши. – Dale

Смежные вопросы