好的,从特殊符号中捕获关键代码会在具有不同布局的键盘上产生不同的结果。但是像“a-z”这样的'常见'字符呢?如果您有QWERTY键盘,则在键入81
时会获得关键代码q
。当您使用AZERTY键盘时,按81
时是否会获得代码a
,因为a
应该是q
'应该在哪里?或者映射的方式不同?
修改
我接受的答案可能是你捕捉钥匙时最好的解决方案,并希望确定'a'真的是'a',但正如我在下面的评论中解释的那样,我仍然很好奇关键代码是怎样的在使用int'l键盘时被'翻译'。那就是:消息来源建议至少a-z应该是一致的,但是我找不到对此的支持(或实际尝试过的人)。
答案 0 :(得分:1)
如果您使用keypress
事件而不是keyup
或keydown
,则问题就会消失,因为在那种情况下您会获得字符代码而非密钥代码。
示例:
document.onkeypress = function(e) {
e = e || window.event;
var charCode = (typeof e.which == "undefined") ? e.keyCode : e.which;
alert( String.fromCharCode(charCode) );
};
这里是JavaScript中关键处理的权威资源:http://unixpapa.com/js/key.html