Клавиша Meta (Cmd / Windows) в JavaScript: код

Для Meta (Cmd / Windows key), event.key — это Meta, event.code — это MetaLeft / MetaRight, а устаревший keyCode — это 91. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.keyMeta
event.codeMetaLeft / MetaRight
event.keyCode / which (устарело)91

Как определить клавишу Meta (Cmd / Windows)

document.addEventListener('keydown', (event) => {
  if (event.key === 'Meta') {
    // Meta (Cmd / Windows key) was pressed
  }
});

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

Как браузеры обрабатывают клавишу Meta (Cmd / Windows)

Meta — это Cmd на Mac и клавиша Windows на ПК. Проверьте event.metaKey. Операционная система часто оставляет сочетания с клавишей Windows за собой. Firefox исторически сообщал keyCode 224 для Cmd.

В React

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

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

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