String.charCodeAt(index)
和 JavaScript 键码的返回值有什么区别?有没有办法在两者之间进行翻译?
例如:
console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome
但是'.'的keyCode 是 190。
String.charCodeAt(index)
和 JavaScript 键码的返回值有什么区别?有没有办法在两者之间进行翻译?
例如:
console.log('.'.charCodeAt(0)); // prints 46 on Mac/Chrome
但是'.'的keyCode 是 190。
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 值。
与 onkeydown 和 onkeyup 不同,onkeypress
事件确实返回一个charCode
属性,该属性可以使用String.fromCharCode
input.onkeypress = function(e) {
var char = String.fromCharCode(e.charCode);
}
另请查看此链接,了解有关不同浏览器和平台上的 keyCodes / charCodes 的一些很好的研究