JavaScript 有哪些可用的键码?如果所有浏览器的键码不同,请列出每个浏览器的键码。
7 回答
keyCodes不同于ASCII 值。有关完整的 keyCode 参考,请参阅http://unixpapa.com/js/key.html
例如,小键盘数字的键码为 96 - 105,对应于 ASCII 中小写字母的开头。这可能会导致验证数字输入时出现问题。
遵循@pimvdb 的建议,并创建了我自己的:
http://daniel-hug.github.io/characters/
请耐心等待,因为为 65536 个具有 JavaScript 键码的字符中的每一个生成一个元素需要几秒钟。
对于游戏的控制配置 UI,我需要这样的东西,所以我为标准的美国键盘布局键码编制了一个列表,并将它们映射到它们各自的键名。
这是一个包含代码映射的小提琴 -> 名称,反之亦然:http: //jsfiddle.net/vWx8V/
如果您想支持其他按键布局,您需要修改这些地图以分别适应它们。
除非您正在寻找包含控制字符和其他特殊值的键码值列表,这些值不能(或很少)使用键盘输入,并且可能超出 JavaScript 的keydown
//事件范围keypress
。keyup
其中许多是控制字符或null
( \0
) 等特殊字符,您很可能不需要它们。
请注意,全键盘上的键数少于许多键码值。
这个应用程序太棒了。它本质上是一个虚拟键盘,可以立即向您显示在标准美式键盘上按下的键码。
这是一个完整的列表——我相信: http: //www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
以下是一些有用的链接:
第二列是 keyCode,html 列显示它的显示方式。你可以在这里测试它。
One possible answer will be given when you run this snippet.
document.write('<table>')
for (var i = 0; i < 250; i++) {
document.write('<tr><td>' + i + '</td><td>' + String.fromCharCode(i) + '</td></tr>')
}
document.write('</table>')
td {
border: solid 1px;
padding: 1px 12px;
text-align: right;
}
table {
border-collapse: collapse;
}
* {
font-family: monospace;
font-size: 1.1em;
}