2

好的,从特殊符号中捕获键码会在不同布局的键盘上产生不同的结果。但是像 az 这样的“常见”字符呢?如果您有 QWERTY 键盘,您将81在键入q. 当你有一个 AZERTY 键盘时,81当你按下 时你会得到代码a,因为“应该”在哪里aq还是映射的方式不同?

编辑:

我接受的答案可能是当您捕获密钥并希望确定“a”真的是“a”时的最佳解决方案,但正如我在下面的评论中解释的那样,我仍然很好奇密钥代码是如何“翻译的” ' 使用国际键盘时。也就是说:消息来源建议至少 az 应该是一致的,但我找不到对此的支持(或实际尝试过的人)。

4

1 回答 1

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

于 2012-05-10T10:52:51.767 回答