Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
1
12
1.5
1.2
18
1

keydown イベントは、キーが押されたときに発生します。

1
12
6
1.2
18
1

keyup イベントは、キーが離されたときに発生します。

1
12
6
1.2
18
1

KeyboardEvent.altKey は読み取り専用のプロパティで、イベント発生時に alt キー(macOS では Option または ⌥)が押されたか (true) または押されていないか (false) を示す論理値です。

1
12
1.5
1.2
18
1

KeyboardEvent.code プロパティは、(キー入力によって入力された文字ではなく)キーボード上の物理的なキーを表します。つまり、このプロパティはキーボードレイアウトや修飾キーの状態によって変更される前の値を返します。

48
79
38
10.1
48
10.3

KeyboardEvent.ctrlKey は読み取り専用のプロパティで、このイベントが発生したときに control キーが押されていた (true) または押されていなかった (false) ことを表す論理値を返します。

1
12
1.5
1.2
18
1

KeyboardEvent.getModifierState() メソッドは、指定された修飾キーの現在の状態を返します。修飾キーが有効な場合(すなわち修飾キーが押されているかロックされている場合)は true、そうでなければ false になります。

30
12
15
10.1
30
10.3
getModifierState (key parameter alt)

`"Alt"` を `key` パラメータとして

30
12
15
10.1
30
10.3
getModifierState (key parameter altgraph)

`"AltGraph"` を `key` パラメータとして

48
79
15
10.1
48
10.3
getModifierState (key parameter capslock)

`"CapsLock"` を `key` パラメータとして

48
12
15
10.1
48
10.3
getModifierState (key parameter control)

`"Control"` を `key` パラメータとして

30
12
15
10.1
30
10.3
getModifierState (key parameter fn)

`"Fn"` を `key` パラメータとして

48
79
15
48
getModifierState (key parameter meta)

`"Meta"` を `key` パラメータとして

30
79
15
10.1
30
10.3
getModifierState (key parameter numlock)

`"NumLock"` を `key` パラメータとして

48
79
15
48
getModifierState (key parameter scrolllock)

`"ScrollLock"` を `key` パラメータとして

48
79
15
48
getModifierState (key parameter shift)

`"Shift"` を `key` パラメータとして

30
12
15
10.1
30
10.3
getModifierState (key parameter symbol)

`"Symbol"` を `key` パラメータとして

48
79
48

KeyboardEvent.isComposing は読み取り専用プロパティで、イベントが変換セッションの途中、すなわち Element/compositionstartevent の後かつ Element/compositionendevent の前に発行されたことを示す論理値を返します。

56
79
31
10.1
56
10.3

KeyboardEvent インターフェイスの key プロパティは読み取り専用で、ユーザーが押したキーの値を、 Shift キーなどの修飾キーやキーボードのロケールやレイアウトを考慮した値で返します。

51
12
23
10.1
51
10.3
key (dead key)

デッドキー

51
79
37
10.1
51
10.3
key (non printable keys)

非表示キー

51
12
23
10.1
51
10.3
key (printable key)

印刷可能なキー

51
12
29
10.1
51
10.3

KeyboardEvent() コンストラクターは、新しい KeyboardEvent オブジェクトを生成します。

26
12
31
7
26
7

KeyboardEvent.location は読み取り専用のプロパティで、キーボードやその他の入力機器上のキーの位置を表す unsigned long を返します。

30
12
15
8
30
8

KeyboardEvent.metaKey は読み取り専用のプロパティで、 プロパティは、イベントが発生したときに Meta キーが押されていたか (true) あるいは押されていなかった (false) かを示す論理値を返します。オペレーティングシステムによっては、キーが検出されないように遮蔽されることがあります。

1
12
1.5
1.2
18
1

repeat は KeyboardEvent インターフェイスの読み取り専用プロパティで、 このキーが押しっぱなしになって自動反復している場合、 true の論理値を返します。

137
12
28
10.1
137
10.3

KeyboardEvent.shiftKey は読み取り専用プロパティで、このイベントが発生したときに shift キーが押されていたか (true) いなかったか (false) を示す論理値を返します。

1
12
1.5
1.2
18
1
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 2件
制限事項
  • このブラウザでは部分的にしか実装されていません
実装メモ
  • その値は常に空です。
注釈 2件
削除済み
  • このバージョンで機能が削除されました (79)
対応条件
  • 以前は別名で対応していました: Scroll (12)
注釈 1件
実装メモ
  • オートコンプリートの候補を選択すると、`keydown` イベントが発生しますが、そのイベントの `key` プロパティは `undefined` になります。バグ 41425904 を参照してください。
注釈 1件
実装メモ
  • オートコンプリートの候補を選択すると、`keydown` イベントが発生しますが、そのイベントの `key` プロパティは `undefined` になります。バグ 41425904 を参照してください。
注釈 1件
実装メモ
  • Firefox 48以降、Windowsキーは`meta`キーとして扱われなくなりました。
注釈 4件
実装メモ
  • Chrome 139以前のバージョンでは、Linux上のX11環境において、複数のキーが押されたままの場合、最後に押されたキーに対する`keydown`イベントが発生する際、`repeat`が誤って`false`に設定されてしまいます。バグ40940886を参照してください。
  • Windows および Linux では、複数のキーが押されたままの場合、最後に押されたキーに対する `keydown` イベントが発生しますが、その際、`repeat` の値が誤って `false` に設定されてしまいます。バグ 40940886 を参照してください。
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (137)
注釈 4件
実装メモ
  • Chrome Android 139 以前のバージョンでは、Linux の X11 環境において、複数のキーが押されたままの場合、最後に押されたキーに対する `keydown` イベントが発生する際、`repeat` の値が誤って `false` に設定されてしまいます。バグ 40940886 を参照してください。
  • Windows および Linux では、複数のキーが押されたままの場合、最後に押されたキーに対する `keydown` イベントが発生しますが、その際、`repeat` の値が誤って `false` に設定されてしまいます。バグ 40940886 を参照してください。
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (137)

基本構文

JAVASCRIPT
addEventListener("keydown", (event) => { })

onkeydown = (event) => { }

実務での使いどころ

  • Keyboard events の活用

    keydown イベントは、キーが押されたときに発生します。

注意点

  • 古いブラウザでは対応していない場合がある。

実装メモ

  • 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。