Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向下键keycode未返回预期的字符串值_Javascript_Jquery_Key Events - Fatal编程技术网

Javascript 向下键keycode未返回预期的字符串值

Javascript 向下键keycode未返回预期的字符串值,javascript,jquery,key-events,Javascript,Jquery,Key Events,我在应用程序中使用了iframe。当我按下键盘上的任意键时,我返回字符串值 除键219、220、221外,所有其他键都返回预期的字符串值 这些键返回这些值 但是我需要这些字符串值 如何从这些键中获取正确的字符?keydown和keydup根据您的输入键盘类型(不同区域的不同键盘等),使用不同键盘的键盘代码 对于可打印字符,您需要等待浏览器发出keypress,这将为您提供字符键的翻译值(如果有),它将在charCode中为您提供该值(尽管我偏执地倾向于执行e.charCode | e.which

我在应用程序中使用了
iframe
。当我按下键盘上的任意键时,我返回字符串值

除键
219、220、221
外,所有其他键都返回预期的字符串值

这些键返回这些值

但是我需要这些字符串值


如何从这些键中获取正确的字符?

keydown
keydup
根据您的输入键盘类型(不同区域的不同键盘等),使用不同键盘的键盘代码

对于可打印字符,您需要等待浏览器发出
keypress
,这将为您提供字符键的翻译值(如果有),它将在
charCode
中为您提供该值(尽管我偏执地倾向于执行
e.charCode | e.which
,可能这很愚蠢)。例如,我的键盘上有一个键,按照我的配置方式,在*nix下,是用于
keydown
/
keydup
的keycode220,并生成字符
。但在运行Windows的虚拟机中,使用不同的键盘布局,同一个键是keycode 220,用于
keydown
/
keydup
,但会生成字符
#

例如:

函数处理程序(e){
var msg=“已接收”+e.type;
如果(例如,键入==“按键”){
//按键
msg+=“'”+String.fromCharCode(e.charCode | | e.which)+“'”;
}否则{
//键控向下/键控向上
msg++=“”+(e.which | e.keyCode);
}
控制台日志(msg);
}
文档。addEventListener(“键控”,处理程序,false);
文件。addEventListener(“keyup”,handler,false);
文件。添加的文本列表器(“按键”,处理程序,错误)

单击此处聚焦文档,然后按键。
您能为您的问题分享一把小提琴吗。它不应该是
91
93
92
?@sameer他说的部分正确。你不需要小提琴,这都是经验~25年