Firefox f5和t向下键/按键代码

Firefox f5和t向下键/按键代码,firefox,Firefox,当我得到按键的按键代码时,我会将按键代码输出到控制台。我记录了两个按键代码:keydown和keypress 当我按F5时,我得到以下按键代码: keydown = 84 ("T") keypress = 116 ("t") keydown = 116 ("t") keypress = 116 ("t") 当我按下t时,我得到以下按键代码: keydown = 84 ("T") keypress = 116 ("t") keydown = 116 ("t") keypress = 116

当我得到按键的按键代码时,我会将按键代码输出到控制台。我记录了两个按键代码:keydown和keypress

当我按F5时,我得到以下按键代码:

keydown = 84 ("T")
keypress = 116 ("t")
keydown = 116 ("t")
keypress = 116 ("t")
当我按下t时,我得到以下按键代码:

keydown = 84 ("T")
keypress = 116 ("t")
keydown = 116 ("t")
keypress = 116 ("t")

这只发生在Firefox中。当按下的原始键不相同时,为什么按键代码相同,而按键代码相似?

您确定没有混淆
keyCode
charCode

使用底部的结果,我得到

  • F5
    • keydown:keyCode为116;字符码为0
    • 按键:按键代码为116;字符码为0
  • t
    • keydown:keyCode为84;字符码为0
    • 按键:按键代码为0;字符编码是116
  • T
    • keydown:keyCode为84;字符码为0
    • 按键:按键代码为0;字符编码是84
keyCode
表示用户按下的实际键盘键,而
charCode
表示字符的代码点。例如,键tt具有相同的
keyCode
,因为它们来自同一个键,而它们具有不同的
charCode
,因为它们代表不同的字符

所以为了回答您的问题,您为F5keydown得到的输出是84,当插入
String时,fromCharCode()
给出“T”,而为keypress得到的输出是116,它对应于使用
String.fromCharCode()
的“T”

简而言之,不要在
keyCode
上使用
String.fromCharCode()
,因为结果是毫无意义的。只能在
charCode
上使用它。同样来自“特殊钥匙”下的

如果您需要检测这些键,请帮自己一个忙,在KeyDown/up上搜索它们的键代码,并忽略onkeypress和charCode


我编写了一个库来将keydown和keypress事件转换为字符和键,这将使这更容易-无需处理keycodes和charcode: