我按的是哪个键
按下任意键,页面会显示它的 event.key、event.code 和旧版 keyCode。例如 A 键是 key "a"、code "KeyA"、keyCode 65,回车键是 code "Enter"、keyCode 13。
使用方法
- 点一下页面任意位置,再按键盘上的键。不需要点进输入框。
- 在面板里查看键名、物理 code 和旧版 keyCode。同时按住 Shift、Ctrl、Alt 或 Cmd 可以看到修饰键状态,按住某个键不放,重复标记会亮起。
- 用复制按钮把数值带进你的代码。下面的列表保留最近十次按键。
计算方法
浏览器每次按键都会发出 keydown 事件。event.key 是按键产生的值,如 "a"、"A"、"Enter",会随键盘布局和 Shift 状态变化。event.code 是键盘上的物理按键,如 "KeyA",不同布局下保持不变,所以适合游戏控制。
event.keyCode 是旧的数字码。它已被弃用,但老脚本和 jQuery 时代的代码仍在使用,所以一并显示。使用输入法(IME)组字时它为 229。event.location 表示按键位置:0 标准,1 左侧,2 右侧,3 数字小键盘。
为了测试时页面不滚动、不弹出帮助,工具会取消大多数按键的浏览器默认动作。Tab、Escape、F5、F11、F12 以及带 Ctrl 或 Cmd 的快捷键不受影响。由操作系统处理的按键,如 Fn、音量、亮度,永远到不了网页。
常见问题
event.key 和 event.code 有什么区别?
event.key 是按键输入的内容,所以取决于布局和 Shift。event.code 是物理位置。在法语 AZERTY 键盘上,Q 位置的键 code 是 "KeyQ",key 却是 "a"。游戏控制用 code,依赖字符的快捷键用 key。
还应该用 keyCode 吗?
不用。keyCode 和 which 已被弃用,新代码请用 event.key 或 event.code。这里显示数字,是方便你阅读或修复旧脚本,比如 13 是回车,27 是 Escape,32 是空格。
为什么显示 229 或 "Process"?
中文、日文、韩文等输入法在你组字时会先接管按键,所以浏览器报告 229。如果需要原始按键值,请切换到英文布局。
为什么快捷键或多媒体键没有显示?
操作系统或浏览器可能在网页看到之前就处理了按键,例如 Ctrl+W、Alt+Tab、Cmd+Q 以及许多笔记本的 Fn 行。页面没有反应,说明这个键根本没有到达网页代码。