UIEvent:which 属性

已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作。

UIEvent 接口的 UIEvent.which 只读属性返回一个数字,表示按下了鼠标上的哪个按钮,或者是键盘上按下的键的 keyCode 或字符代码(charCode)的数字值。

KeyboardEvent 的值 非标准

对于 KeyboardEventevent.which 包含按下的特定按键的数字代码,具体取决于是否按下了字母数字键或非字母数字键。有关更多详细信息,请参阅已弃用的KeyboardEvent.charCodeKeyboardEvent.keyCode

备注: 新代码请考虑使用 KeyboardEvent.keyKeyboardEvent.code

MouseEvent 的值 非标准

对于 MouseEventevent.which 是表示给定按钮的数字:

  • 0:无按钮
  • 1:左键
  • 2:中键(如果有)
  • 3:右键

对于配置为左利手使用的鼠标,按钮操作是相反的。在这种情况下,从右到左读取值。

备注: 新代码请考虑使用 MouseEvent.button

示例

html
<html lang="zh">
  <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

参见