1

可能重复:
Javascript KeyCode vs CharCode = Utter Confusion

String.charCodeAt(index)和 JavaScript 键码的返回值有什么区别?有没有办法在两者之间进行翻译?

例如:

console.log('.'.charCodeAt(0));  // prints 46 on Mac/Chrome

但是'.'的keyCode 是 190。

4

2 回答 2

2

string.charCodeAt(index) 旨在为您返回指定位置的字符串字符的 ascii 值。

keyCode 是被按下的键盘键值的浏览器实现。不幸的是,它也没有在所有浏览器中标准化。

编辑:

String.fromCharCode(unicodeValue);

这会将诸如 keyCode 之类的 unicode 值转换为 ascii 值。请注意,并非所有 keyCode 值都会转换为适当的 ascii 值(因为没有),例如 { delete, up, down, left, right, home, insert, page up, page down }

示例:按 Delete 键返回 46 的 keyCode,如果这样做,alert(String.fromCharCode(46));您将看到它输出一个句点,因为 46 是一个句点的 ascii 值。

于 2013-01-24T19:04:52.353 回答
1

与 onkeydown 和 onkeyup 不同,onkeypress事件确实返回一个charCode属性,该属性可以使用String.fromCharCode

input.onkeypress = function(e) {
     var char = String.fromCharCode(e.charCode);
}

另请查看此链接,了解有关不同浏览器和平台上的 keyCodes / charCodes 的一些很好的研究

http://unixpapa.com/js/key.html

于 2013-01-24T19:27:16.407 回答