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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
which
Deprecated

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
Deprecated. Not for use in new websites.
See implementation notes.
Has more compatibility info.

参见