2012-05-10 36 views
2

好的,从特殊符号中捕捉键码会在具有不同布局的键盘上产生不同的结果。但是,“常见”角色如a-z怎么样?如果你有一个QWERTY键盘,当你输入q时,你会得到密码81。当您使用AZERTY键盘时,当您按a时,您是否获得代码81,因为aq'应该'?或者映射是否完成不同?国际键盘上常见字符的键码

编辑:

我接受的答案可能是,当你捕获键和要确保“一”是真的“A”的最佳解决方案,但正如我在下面的意见说明,我仍然很好奇在使用int'l键盘时,键码是如何“翻译”的。也就是说:消息来源表明至少a-z应该是一致的,但是我找不到支持(或者实际尝试过的人)。

+0

如果你有AZERTY键盘那么为什么你就不能尝试一下 – 2012-05-10 10:22:44

+0

我不这样做,那么我不能。此外,这只是一个简单的例子,但我怀疑可能会遇到更多的问题,我不能用俄语,斯瓦希里语,乌干达等布局来考虑这些常见的字母键。当然不希望。 – kasimir

回答

1

如果您使用keypress事件而不是keyup或​​那么问题就会消失,因为在这种情况下,您将获得字符代码而不是密钥代码。

例子:

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

+0

我已经发现,绝对是一个明确的资源,我同意!我之所以会问这个问题是因为那个文档,因为在3.3以下它列出了关键代码,并且似乎表明'常见'字符(如a-z)返回ASCII代码。但是,它也说明代码是通过键盘驱动程序转换的...有点令人费解。我想你的解决方案效果最好,因为它省略了键盘驱动程序,浏览器等的影响。 – kasimir