Код клавиши Control (Ctrl) в JavaScript

Для Control (Ctrl), event.key — это Control, event.code — это ControlLeft / ControlRight, а устаревший keyCode — это 17. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.keyControl
event.codeControlLeft / ControlRight
event.keyCode / which (устарело)17

Как определить Control (Ctrl)

document.addEventListener('keydown', (event) => {
  if (event.key === 'Control') {
    // Control (Ctrl) was pressed
  }
});

Используйте event.key, чтобы реагировать на то, что означает клавиша (значение зависит от раскладки клавиатуры), и event.code для её физической позиции, например WASD в играх. keyCode и which устарели: они всё ещё работают, но их значения различаются в разных браузерах и раскладках.

Как браузеры обрабатывают Control (Ctrl)

Проверяйте event.ctrlKey для горячих клавиш. На Mac пользователи ожидают Cmd: проверьте event.metaKey там или поддержите оба варианта.

В React

<input onKeyDown={(e) => { if (e.key === 'Control') { /* … */ } }} />

Часто задаваемые вопросы

Какой keyCode у Control (Ctrl)?
17. Однако он устарел: в новом коде используйте event.key («Control») или event.code (ControlLeft).
В чём разница между event.key и event.code?
event.key — это символ или действие, которое клавиша выдаёт при текущей раскладке; event.code — физическая позиция клавиши, одинаковая на любой раскладке.
Что использовать: keydown или keypress?
keydown. Событие keypress устарело и не срабатывает для клавиш, которые не вводят символы, например Escape или стрелки.