Event KeyCodesテスター
任意のキーを押して、event.key、event.code、keyCode、whichの値をリアルタイムで確認します。
このツールについて
Event KeyCodesテスターは、JavaScript開発者向けのリアルタイムキーボードイベントインスペクターです。静的な参照テーブルとは異なり、キーを押すとライブで KeyboardEvent オブジェクトをキャプチャし、キーボードイベント処理に関わるすべてのプロパティを表示します:event.key、event.code、event.keyCode、event.which、event.location、修飾キーの状態、そしてキーが押され続けているかどうか(event.repeat)。
キーボードイベントの処理は、フロントエンド開発で最もトリッキーな部分の一つです。最新の event.key プロパティは "Enter" や "ArrowDown" のような人間が読める値を返しますが、event.code はレイアウトやアクティブな修飾キーに関係なくキーボード上の物理的なキーを識別します。例えば、QWERTYキーボードで「Z」キーを押すと、AZERTYレイアウトで同じ物理キーが「W」を入力する場合でも、event.code は "KeyZ" を返します。この区別を理解することは、アクセシブルで国際化されたキーボードショートカットの構築に不可欠です。
レガシーのプロパティ keyCode と which はW3C UI Events仕様で非推奨となっていますが、既存のコードベースで広く使用されており、すべての主要ブラウザでまだサポートされています。本ツールはモダンとレガシーの値を並べて表示するため、古いコードの移行や両方のアプローチのサポートが容易です。非推奨のプロパティは明確にラベル付けされているため、新しいプロジェクトで避けるべき値がわかります。
イベント履歴ログは直近の20回のキー入力を記録し、各エントリのキー、コード、keyCode、イベントタイプ、アクティブな修飾キー、正確なタイムスタンプを表示します。これはキーシーケンスのデバッグ、Ctrl+Shift+K のような修飾キーの組み合わせのテスト、または keydown と keyup イベントが期待どおりの順序で発生することの検証に特に便利です。テスト、ドキュメント、バグレポート用にイベントをJSONオブジェクトとしてコピーできます。すべての処理はブラウザ内で完全に実行され、キー入力がサーバーに記録・送信されることはありません。
使い方
- ツール上部のフォーカスエリアをクリックします。ページ読み込み時に自動でフォーカスされますが、いつでもクリックして再フォーカスできます。
- キーボードの任意のキーを押します。ツールは即座にすべてのイベントプロパティをカードで表示します:
event.key、event.code、keyCode、which、location、repeat。 - 修飾キーバッジ(Shift、Ctrl、Alt、Meta)でどの修飾キーがアクティブかを確認します。アクティブな修飾キーは緑色でハイライトされます。
- イベントタイプインジケーター(keydown、keypress、keyup)でキー入力に対してどのイベントが発生したかを確認します。
- プロパティカードにマウスを合わせてコピーアイコンをクリックし、その値をクリップボードにコピーします。JSONとしてコピーボタンでイベント全体をJSONオブジェクトとしてコピーします。
- 下にスクロールしてイベント履歴テーブルで直近の20回のキー入力をタイムスタンプと修飾キーの詳細とともに確認します。履歴をクリアをクリックしてリセットします。
よくある質問
KeyCodeリファレンスツールとの違いは何ですか?
KeyCodeリファレンスツールは、すべての標準キーボードコードの静的で検索可能な参照テーブルを提供します。このEvent KeyCodesテスターは、キーを押すと実際のKeyboardEventオブジェクトをキャプチャし、修飾キーの状態、リピート検出、イベントタイプインジケーターを含むすべてのプロパティをリアルタイムで表示するライブイベント検出器です。すべてのコードを閲覧するにはリファレンスを、ライブデバッグと実際のイベントの検査にはこのテスターを使用してください。
event.keyとevent.codeの違いは何ですか?
event.keyはキーボードレイアウトと修飾キーを考慮したキーの論理値を返します(例:Shift+1を押すと「!」になります)。event.codeはレイアウトに関係なく物理キーを識別します(例:「Digit1」は常に同じ物理キーです)。テキスト入力にはevent.keyを、ゲームコントロールなどのレイアウトに依存しないショートカットにはevent.codeを使用してください。
event.keyCodeとevent.whichはまだ安全に使用できますか?
event.keyCodeとevent.whichはW3C UI Events仕様で非推奨となっていますが、すべての主要ブラウザで後方互換性のためにまだサポートされています。新しいコードにはevent.keyまたはevent.codeを使用してください。keyCodeを使用するレガシーコードを保守している場合、このツールはイベントハンドラーを書き換えずに値を確認するのに役立ちます。
event.locationは何を教えてくれますか?
event.locationはキーの物理的な位置を示します:0(標準)は一般的なキー、1(左)は左Shiftなどの左側の修飾キー、2(右)は右Ctrlなどの右側の修飾キー、3(テンキー)はテンキーのキーです。例えば左と右のAltキーを区別する必要がある場合に重要です。
一部のキーがツールに表示されないのはなぜですか?
特定のキーの組み合わせは、Webページに到達する前にオペレーティングシステムまたはブラウザによってインターセプトされます。例えば、macOSのCmd+Qはブラウザを終了し、Ctrl+Wは現在のタブを閉じ、Print ScreenはOSによってキャプチャされる場合があります。これらのイベントはWebアプリケーションでは検出できません。
event.repeatとは何ですか?いつ発生しますか?
event.repeatは、キーが押し続けられてブラウザが繰り返しkeydownイベントを発生させている場合にtrueになります。最初のkeydownはrepeat: falseで、キーが押し続けられている間の後続のイベントはrepeat: trueになります。ゲームやテキストエディタで、単一のキー入力と押し続けを区別するのに便利です。
データは安全ですか?キー入力は記録されますか?
すべての処理はブラウザ内で完全に実行されます。キー入力がサーバーに記録、送信、保存されることはありません。イベント履歴はローカルのコンポーネント状態に保持され、ページを閉じるか更新すると消去されます。ブラウザのDevToolsのネットワークタブで確認できます。
関連ツール
キーコードリファレンス
キーを押すとevent.key、keyCode、code、which値を表示。全キーボードイベントの検索可能なリファレンス。
ASCII/Unicode一覧表
10進、16進、8進、2進値でASCIIおよびUnicode文字を検索・フィルタリングできます。
HTMLエンティティ変換
HTMLエンティティ、名前付き文字、Unicodeエスケープシーケンスのエンコード・デコードを行います。
文字列エスケープ/アンエスケープ
JSON、JavaScript、HTML、URL、SQL、CSV形式の文字列をエスケープ・アンエスケープします。
ブラウザ機能検出
ブラウザのAPI対応状況を50以上のWebプラットフォーム機能(WebGL、WebGPU、Service Workerなど)で検出・表示。
User-Agentパーサー
User-Agent文字列を解析し、ブラウザ、OS、デバイスタイプ、レンダリングエンジンを特定。ボット/クローラー検出対応。