KeyboardTest.io

キーボードイベントビューアー

0イベント
最新200件を保持
イベントkeycodekeyCode位置修飾キー反復Δ ms

キーボードイベントが新しい順に並びます。

既定の動作

key、code、keyCode

3つのプロパティ

KeyboardEventは1回の押下を3つの方法で表します。フランス語のAZERTY配列では、同じ物理キーでもkeyの値は変わり、codeは同じで、keyCodeは文字に合わせて変わります。

プロパティ内容QWERTYAZERTY
key配列で入力される文字、またはキーの名前(Enter、Shift)qa
code配列に関係なく、物理的なキーKeyQKeyQ
keyCode古い数値。非推奨だが今も送られる8165
位置で決めるショートカット(WASD)にはcode、文字の入力や文字で決めるショートカットにはkeyを使います。

location

4つの値

locationプロパティは、左右にあるキーのどちら側か、またはテンキーのキーかを示します。

0 · 標準キーボードに1つしかないほとんどのキー
1 · 左左のShift、Ctrl、Alt、Meta
2 · 右右のShift、Ctrl、Alt、Meta
3 · テンキーテンキーのキー、Enterも含む

IMEとkeyCode 229

IME

日本語、中国語、韓国語の入力方式(IME)がオンのときは、IMEが先にキーを受け取ります。ページに届くのはkeyが"Process"、keyCodeが229のイベントで、文字はcompositionイベントで届きます。ローマ字でniと打って「に」を確定する例:

  1. keydownkey Process · keyCode 229
  2. compositionstartIMEが入力を開始
  3. compositionupdatedataはn、次に「に」
  4. keydownEnterで確定
  5. compositionenddataは確定した文字
  6. inputinputType insertCompositionText
キーの処理の前にisComposingを確認してください。確認しないと、変換を確定するEnterでフォームまで送信されてしまいます。

修飾キー

getModifierState

どのイベントにも、その瞬間に押されている修飾キーが入っています。getModifierState()では、ロックキーの状態もわかります。

ShiftshiftKey
ControlctrlKey
AltaltKey
MetametaKey:Windowsキー、MacではCommand
CapsLockキーを押しているかではなく、ロックのオン・オフ
NumLockロックの状態。Macでは不明なことが多い
AltGraph多くのヨーロッパの配列の右Alt
ScrollLock最近のキーボードではまれ

よくある質問

8問

event.keyとevent.codeの違いは?

文字と位置

keyは今の配列で入力される文字(aやAなど)、codeは物理的なキー(KeyAなど)で、どの配列でも変わりません。このページは押すたびに両方を表示します。

keyCodeが229になるのは?

IME

IMEがキーを処理しているときです。keyは"Process"になり、文字はあとからcompositionイベントとinputイベントで届きます。入力欄に入力すると確認できます。

keyCodeは非推奨?

はい

はい。keyCode、which、charCodeは非推奨ですが、古いコードのために今もブラウザーが送っています。新しいコードではkeyとcodeを使ってください。

Fnキーのイベントが出ないのは?

送られない

Fnキーはキーボード自身が処理し、キーコードを送らないので、どのWebページにも届きません。Fnと一緒に押したキー(F5や音量キーなど)は表示されます。

Ctrl+WやCtrl+Tがページに届かないのは?

ブラウザーが使う

タブを閉じる、新しいタブ、新しいウィンドウなどのショートカットは、ブラウザーが自分で使います。既定の動作を「ブロック」にすると、Tab、F5、/などほかのキーはほとんど止まりますが、これらは止まりません。

キーを押したままだとkeydownが何回も出るのは?

キーリピート

押したままのキーはOSがくり返し送ります。くり返しのたびにrepeatがtrueのkeydownが届き、keyupは離したときに1回だけ届きます。

Macでkeyupが出ないことがあるのは?

Commandを押している

Commandを押している間、macOSのブラウザーはほかのキーのkeyupを送らず、Commandを離したあとも届きません。 Macキーボードテスト →

押したキーはどこかに送信される?

テストからは送信しない

テストからは送信しません。イベントの記録はこのブラウザーの中だけで処理し、ページを閉じると消えます。 プライバシーポリシー →