Skip to content

键盘常用的监听器包括keydownkeyupkeypress,在回调函数中,我们能拿到键盘事件KeyboardEvent,那么如何根据事件属性来判断用户的按键呢?

首先,以前常用的KeyboardEvent.keyCode已经废弃,同样废弃的还有KeyboardEvent.charCodeKeyboardEvent.keyIdentifier,未来不可期,就不做研究了。现在有KeyboardEvent.keyKeyboardEvent.code可以使用。

KeyboardEvent.code返回物理键位的键值,可以理解为——它代表键帽的位置。

KeyboardEvent.key返回键位所代表的键值,可以理解为——它代表键帽上的字。

Shift 组合按键可能会改变KeyboardEvent.key返回值,比如:

A = a

Shift + A = A

= = =

Shift + = = +

Shift 不会改变 KeyboardEvent.code 返回值:

A = KeyA

Shift + A = KeyA

= = Equal

Shift + = = Equal

相同刻字,不同的键位,KeyboardEvent.key返回相同的值:

Shift = Shift

ShiftRight = Shift

Enter = Enter

NumpadEnter = Enter

KeyboardEvent.code返回不同的值:

Shift = ShiftLeft

ShiftRight = ShiftRight

Enter = Enter

NumpadEnter = NumpadEnter

获取用户输入时,建议使用KeyboardEvent.key;获取固定键位时,建议使用KeyboardEvent.code