![](/img/trans.png)
[英]How to get different javascript keycodes for [ and { and ' and "
[英]How are keycodes decided?
是否有 keyCode 为 1 的密钥? 我试过研究,但找不到任何东西。 每个键的键码由什么决定? 就是想...
var directions = {
37: "left",
38: "up",
39: "right",
40: "down",
87:"up",
68:"right",
83:"down",
65:"left"
};
这里显示了左、右、上、下键和 w、a、s、d 键的键码。
(修改)
UIEvents 标准中涵盖了键盘事件的旧keyCode
属性的值。 特别是
keyCode
通常是按下的键的 ASCII 字符代码,特别是对于数字和大写字母。keyup
和keydown
事件返回的keyCode
值的大写字母的ASCII码,但是-keypress
事件keypress
写字母的keycode
是小写字母的 ASCII 码。keyCode
,其功能类似于ASCII控制字符,是控制字符的ASCII码。 EG TAB
、 CR
、 BS
或ESC
分别为 Tab、Enter、Backspace 或 Esc 标签键返回 ASCII 代码。keyCode
可以从7.3.3或7.3.4节所示的键码表中获得。 因此,它们的keyCode
值不是它们的 ASCII 值。Del
使用“d”,功能键F1
到F11
使用字母“p”到“z”)或字符的 ASCII 代码的keyCode
值用于keydown
和keyup
事件其密钥代码取自表 7.3.3 或 7.3.4。 上面有链接。 EG F12
使用关于“{”的ASCII码, ArrowLeft
为“%”和pageDown
为““”作为它们keyCode
值)。
键码是如何决定的?
keyCode
值的起源可能可以追溯到物理键盘的扫描代码如何以两个字节的形式发送到 PC:一个字节用于按下的字符,一个状态字节用于修改键,如 Shift、Alt 等。 这可以通过针对不同键盘布局的查找表进行转换,但至少有一个浏览器最终会使用keyCode
解决方案来表示使用 8 位值表示按下了哪个键。 无论浏览器是什么,其他浏览器都会效仿以变得“兼容”。
避免在现代浏览器中使用keyCode
值,除非需要支持在事件对象的key
属性中不提供 Unicode 或 命名值的旧浏览器。
是否有 keyCode 为 1 的密钥?
ASCII 码值 1 是 ASCII SOH
(标题开始)控制字符,它是在旧的 ASCII 键盘上通过同时按下Ctrl
和A
键生成的。 没有提到它是由它自己的键盘键生成的(它没有一个),或者在标准的第 7 节中被用于其他任何东西。
简而言之,不可能从浏览器中的 PC 键盘生成keycode
值1
*。 您可以尝试使用ctrlKey
事件属性集检测A
键,但Ctrl+A
在软件中广泛用于“全选”。
* 在 Windows 下,在按住 ALT 键的同时在键盘上键入 0,0 和 1 会产生一个SOH
字符,并且我的编辑器会识别出这样的字符。 在 Firefox 中尝试这个技巧没有用,只是为ALT
、 0
、 0
和1
生成了关键事件。
https://www.w3schools.com/jsref/event_key_keycode.asp
utf8/16 已经取代了 ASCII,因为计算已经适应系统地处理世界上所有的语言。 https://www.w3schools.com/charsets/ref_html_utf8.asp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.