这主要是一种检查方法。对于两个shift键的关键代码均为16。这是否意味着在浏览器中无法区分左、右Shift事件?
这主要是一种检查方法。对于两个shift键的关键代码均为16。这是否意味着在浏览器中无法区分左、右Shift事件?
在支持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){
}
event.code
(物理键盘字符串)代替event.key
(数字ASCII值)。
KeyboardEvent.code属性表示键盘上的一个物理按键(而不是按下该按键所生成的字符)。
如果您向下滚动到底部的“代码值”,则可以找到两个不同的Shift键:
"ShiftLeft"
,"ShiftRight"
最简单的方法
$(document).ready(function(){
$("html").keydown(function(e) {
if (e.shiftKey) {
if (event.location == 1) console.log('left shift');
if (event.location == 2) console.log('right shift');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
event
。 - loganfsmyth