如何在JavaScript中检测上下左右方向键及Tab键的按下操作?
问题原因及解决办法
keypress事件仅对可打印字符触发,方向键(up/down/left/right)、Tab这类控制键属于非打印字符,因此不会触发该事件。
要检测这些按键,需替换为keydown或keyup事件——这两个事件能捕获所有按键操作,包括各类控制键。
修改后的代码示例:
document.addEventListener('keydown', (e) => { console.log(e.key); // 可直接判断目标按键 const targetKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Tab']; if (targetKeys.includes(e.key)) { console.log('目标按键被按下:', e.key); // 若需阻止Tab键默认的焦点切换行为,可添加此行 // e.preventDefault(); } });
注意:阻止Tab的默认行为会影响页面焦点切换逻辑,按需使用即可。
内容的提问来源于stack exchange,提问作者Navspace
相关产品推荐
相关产品推荐

