我按的是哪个键

按下任意键,页面会显示它的 event.key、event.code 和旧版 keyCode。例如 A 键是 key "a"、code "KeyA"、keyCode 65,回车键是 code "Enter"、keyCode 13。

这个工具需要实体键盘。在手机或平板上,请先连接蓝牙或 USB 键盘。

先点击本页面,再按键。Tab、Esc、F5 和 F12 保持原有功能。

请按任意键
event.key
-
event.code
-
event.keyCode(旧版)
-
event.location
-
修饰键
-
event.repeat
-

最近按键

#keycodekeyCode修饰键
还没有按键
问题解决了吗?

使用方法

  1. 点一下页面任意位置,再按键盘上的键。不需要点进输入框。
  2. 在面板里查看键名、物理 code 和旧版 keyCode。同时按住 Shift、Ctrl、Alt 或 Cmd 可以看到修饰键状态,按住某个键不放,重复标记会亮起。
  3. 用复制按钮把数值带进你的代码。下面的列表保留最近十次按键。

计算方法

浏览器每次按键都会发出 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 行。页面没有反应,说明这个键根本没有到达网页代码。