javascript - 键码是如何决定的?

标签 javascript jquery html

是否存在 keyCode 为 1 的 key ?我尝试过研究但找不到任何东西。每个键的键码由什么决定?只是想知道...

var directions = {
    37: "left",
    38: "up",
    39: "right",
    40: "down",
    87:"up",
    68:"right",
    83:"down",
    65:"left"
};

这里显示了左、右、上、下键和 w、a、s、d 键的键码。

最佳答案

(已修改)

旧值 keyCode UIEvents standard 涵盖了键盘事件的属性。特别是

  • keyCode通常是所按下按键的 ASCII 字符代码,尤其是数字和大写字母。
  • 对于小写字母,keyupkeydown事件返回为 keyCode大写字母的 ASCII 代码,但是 -
  • keycode对于 keypress 中的小写字母events 是小写字母的 ASCII 代码。
  • keyCode对于某些按键,其功能与ASCII控制字符类似,是控制字符的ASCII码。例如。 TAB , CR , BSESC分别为 Tab、Enter、Backspace 或 Esc 标记键返回 ASCII 代码。
  • 对于具有 ASCII 代码的非字母数字键,keyCode可以从7.3.3节中显示的关键代码表获得或7.3.4 。结果他们的keyCode value 不是它们的 ASCII 值。
  • 如果按键不是可打印字符,则它没有相应的 ASCII 代码,并且不会生成按键事件。这种 key 可以使用keyCode值为 keydownkeyup来自小写字母代码的事件(例如 Del 使用“d”,功能键 F1F11 使用字母“p”到“z”),或者来自其键码取自表 7.3 的字符的 ASCII 代码.3或7.3.4。上面链接了。例如。 F12使用 ASCII 代码表示“{”,ArrowLeft对于 '%' 和 pageDown '"' 作为其 keyCode 值。) <小时/>

    How are keycodes decided?

keyCode的由来这些值可能可以追溯到物理键盘上的扫描代码如何以两个字节发送到 PC:一个用于按下的字符,另一个用于修饰键(如 Shift、Alt 等)的状态字节。这可以通过针对不同键盘布局的查找表进行转换,但在这一过程中,至少有一个浏览器最终得到 keyCode 。解决方案使用 8 位值来表示按下了哪个键。无论哪种浏览器,其他浏览器都会效仿以变得“兼容”。

避免使用keyCode现代浏览器中的值,除非需要支持不提供 Unicode 或 named-values 的旧版浏览器。在事件对象的 key 中属性。

<小时/>

Is there a key with a keyCode of 1?

ASCII 码值 1 是 ASCII SOH (标题开始)控制字符,在旧的 ASCII 键盘上按 Ctrl 生成。和 A同时按键。标准第 7 节中没有提到它是由自己的键盘键生成的(它没有键盘键),也没有提到它被用于其他任何用途。

简而言之,不可能生成 keycode 1 的值从浏览器中的 PC 键盘*。您可以尝试检测 A键为ctrlKey事件属性已设置,但 Ctrl+A在软件中广泛用于“全选”。

* 在 Windows 下,按住 ALT 键的同时在键盘上键入 0,0 和 1 会生成 SOH性格,并得到我的编辑的认可。在 Firefox 中尝试这个技巧并没有奏效,只是产生了 ALT 的关键事件。 , 0 , 01

关于javascript - 键码是如何决定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59482038/

相关文章:

javascript - 使动态生成的 div 可放置

javascript - 我如何扩展这个 CSS 列表?

javascript - 根据所选选项显示表单字段

javascript - 加载脚本后的回调在警报之前起作用,而在我删除警报时不起作用

javascript - XMLHTTPRequest 错误 : Synchronous XMLHttpRequest on the main thread is deprecated . ..(SoundCloud API)

javascript - Angular 5.2 : Getting error while building application using VSTS build server : CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

javascript - 错误 TypeError : array. map 不是 Angular 管道中的函数

javascript - HTML 数据抓取(我认为)

javascript - 在特定时间间隔内刷新 PHP 所需的文件

javascript - 文档.location