2021-06-15 JavaScriptで押されたキーを検知する: KeyboardEvent.keyCode / KeyboardEvent.key
ショートカットの動作を作るために、JavaScriptで押されたキーを検知したかった。
KeyboardEvent.keyCode - Web API | MDN
KeyboardEvent.keyCode
というのがあるが、実は非推奨!
この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。
KeyboardEvent.key - Web API | MDN
じゃあ何を代わりに使えばいいかというと、現在は KeyboardEvent.key
を使うとよいらしい。
KeyboardEvent インターフェイスの key はプロパティは読み取り専用で、ユーザーが押したキーの値を、 Shift キーなどの修飾キーやキーボードのロケールやレイアウトを考慮した値で返します。値は以下のように判断されます。
textarea.addEventListener('keydown', (e) => {
if (!e.repeat)
logMessage(`Key "${e.key}" pressed [event: keydown]`);
else
logMessage(`Key "${e.key}" repeating [event: keydown]`);
});