基于keydown事件的属性,我想确定当前的charCode是什么?
实施例
对于按下NumPad0,D0和Colon键的keydown事件,我想知道相关的charcode是什么。目前,我有一个包含与该keyCode关联的charcode的映射,或者如果未指定charCode,则使用当前。
keyCode = {
Colon: 186,
D0: 48,
NumPad0: 96,
};
charCodes = {
186: 59,
96: 48,
};
shiftCharCodes = {
186: 58,
48: 41
};
在某些情况下,各个浏览器的keyCodes也不同?
实施例
keydown事件在浏览器中具有不同的keyCode值。 冒号键(:/;) - firefox上的keyCode是59 - IE / safari上的keyCode为186
了解更多信息
答案 0 :(得分:1)
如果您对与按键相关联的字符代码感兴趣,那么您将无法使用keydown
事件。 keypress
事件是此信息可用的唯一位置,并且对于大多数可打印键而言并不太有问题。
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
alert("Character: " + String.fromCharCode(charCode));
};
“特殊”不可打印按键(如功能键)的浏览器行为之间存在差异。有关更多信息,我认为this article by Jan Wolter是JavaScript密钥处理的权威参考。
答案 1 :(得分:-1)
虽然我一般都不喜欢我即将给出的答案,但我觉得这是合适的:
这是jQuery,Prototype,Dojo或MooTools等库的完美用例。
你不想为这项工作增加负担,已经完成了。