javascript可以告诉左右键之间的区别吗?

Wea*_*unt 21 javascript keyboard keycode

大多数情况下,这是一个健全检查.两个shift键的关键代码是16.这是否意味着在浏览器中区分左右移位事件实际上是不可能的?

log*_*yth 23

在较新的浏览器支持中,DOM3您可以使用它event.location来检查位置.

该规范DOM3,存在用于位置界定4个常数,DOM_KEY_LOCATION_STANDARD,DOM_KEY_LOCATION_LEFT,DOM_KEY_LOCATION_RIGHT,和DOM_KEY_LOCATION_NUMPAD.

在这种情况下,您可以这样做:

if (event.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT){

} else if (event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT){

}
Run Code Online (Sandbox Code Playgroud)


cla*_*e45 5

您可以使用event.code(物理键盘字符串)代替event.key(数字 ascii 值)。

event.code MDN 文档

KeyboardEvent.code 属性表示键盘上的一个物理键(与按键生成的字符相对)。

如果向下滚动到底部的“代码值”,您可以找到两个不同的 shift 键:

"ShiftLeft", "ShiftRight"