UIEvent: which プロパティ

非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

UIEvent.whichUIEvent インターフェイスの読み取り専用プロパティで、マウスの押されたボタンを示す数値、keyCode の数値、キーボードで押されたキーの文字コード (charCode) のいずれかを返します。

KeyboardEvent の値 非標準

KeyboardEvent においては、 event.which は、英数字キーと非英数字キーのどちらが押されたかに応じて、押された特定のキーに対する数値のコードを含んでいます。 詳しくは非推奨の KeyboardEvent.charCodeKeyboardEvent.keyCode を参照してください。

メモ: 新しいコードでは KeyboardEvent.key または KeyboardEvent.code を検討してください。

MouseEvent の値 非標準

MouseEvent においては、 event.which は押されたボタンを表す数値型です。

  • 0: No button
  • 1: 左ボタン
  • 2: 中央ボタン
  • 3: 右ボタン

左利き用に設定されたマウスの場合、ボタンの動作は逆になります。この場合、値は右から左に読み取られます。

メモ: 新しいコードでは MouseEvent.button を検討してください。

html
<html lang="ja">
  <head>
    <title>charCode/keyCode/which の例</title>

    <script>
      function showKeyPress(evt) {
        alert(
          `onkeypress ハンドラー:\n` +
            `keyCode プロパティ: ${evt.keyCode}\n` +
            `which プロパティ: ${evt.which}\n` +
            `charCode プロパティ: ${evt.charCode}\n` +
            `押されたキーの文字: ${String.fromCharCode(evt.charCode)}\n`,
        );
      }

      function keyDown(evt) {
        alert(
          `onkeydown ハンドラー:\n` +
            `keyCode プロパティ: ${evt.keyCode}\n` +
            `which プロパティ: ${evt.which}\n`,
        );
      }
    </script>
  </head>

  <body onkeypress="showKeyPress(event);" onkeydown="keyDown(event);">
    <p>何かキーを押してください。</p>
  </body>
</html>

仕様書

Specification
UI Events
# dom-uievent-which

ブラウザーの互換性

BCD tables only load in the browser

関連情報