2

根据 keydown 事件的属性,我想确定当前的 charCode 是什么?

例子。

对于按下 NumPad0、D0 和冒号键时的 keydown 事件,我想知道关联的字符代码是什么。目前我有一个包含与该 keyCode 关联的字符码的地图,或者如果未指定 charCode 则使用当前的。

keyCode = {
  Colon: 186,
  D0: 48,
  NumPad0: 96,
};
charCodes = {
  186: 59,
  96: 48,
};
shiftCharCodes = {
  186: 58,
  48: 41
};

同样在某些情况下,keyCodes 在不同的浏览器中是不同的?

例子。

keydown 事件在浏览器中具有不同的 keyCode 值。冒号键 (:/;) - 火狐上的 keyCode 是 59 - IE/safari 上的 keyCode 是 186

了解更多信息

http://www.quirksmode.org/js/keys.html

4

2 回答 2

1

如果您对与按键相关的字符代码感兴趣,那么您将无法获得该keydown事件。该keypress事件是此信息可用的唯一位置,并且对于大多数可打印键来说不是太大问题。

document.onkeypress = function(evt) {
    evt = evt || window.event;
    var charCode = evt.which || evt.keyCode;
    alert("Character: " + String.fromCharCode(charCode));
};

围绕“特殊”不可打印按键(例如功能键)的浏览器行为存在差异。有关更多信息,我认为Jan Wolter的这篇文章是 JavaScript 密钥处理的权威参考。

于 2010-05-26T22:30:46.337 回答
-1

虽然我通常不喜欢我即将给出的答案,但我觉得它是合适的:

这是 jQuery、Prototype、Dojo 或 MooTools 等库的完美用例。

你不想让自己负担这项工作,它已经完成了。

于 2010-05-26T22:13:02.683 回答