不使用altKey
,shiftKey
,ctrlKey
,是否可以检测到包括CapsLock,Tab和Space的它们?
这是一种有趣的方式,您可以找出在JavaScript中按下了哪个键。这非常有帮助
这是JavaScript代码:-
window.addEventListener("keypress", function(e){
console.log(e.keyCode);
});
window.addEventListener("keydown", function(e){
if(e.keyCode==9)
{
console.log("You Pressed Tab");
e.preventDefault();
}
});
window.addEventListener("keyup", function(e){
var keyPressed;
switch(e.keyCode)
{
case 9: return; // already handled above
case 18: keyPressed="Alt"; e.preventDefault(); break;
case 20: keyPressed="Caps Lock"; break;
case 17: keyPressed="Ctrl"; break;
case 16: keyPressed="Shift"; break;
case 37: keyPressed="Left A"; break;
case 38: keyPressed="Top A"; break;
case 39: keyPressed="Right A"; break;
case 40: keyPressed="Bottom A"; break;
default: keyPressed=e.keyCode;
}
console.log("You pressed "+keyPressed);
});
switch case
构造不在keydown
处理程序中的原因是因为我个人不喜欢按住该键时多次执行该处理程序。当然,可以在switch
情况下添加更多键。另请注意,Tab在keydown
下。这是因为按下键时会触发Tab。如果将其放置在keyup
下,则不会触发keypress
处理程序,从而更改窗口焦点并使keyup
处理程序无效。 preventDefault()
防止Tab和Alt改变焦点。该代码只是一个示例,请根据需要进行更改。