我正在处理 keyup 事件,需要获取正在键入的字符。当我键入一个点时,data.keyCode 为 190,但当我尝试使用 String.fromCharCode(190) 对其进行转换时,我得到的是“¾”符号。
This reference告诉我 190 是周期符号。 That one说我没有任何跨浏览器按键处理的机会。那么,我该如何正确处理呢?
最佳答案
I'm handling the keyup event, and need to get the character being typed.
这并不可靠。在 keyup
上,您只能获得 keyCode
而不是 charCode
。
(如果您考虑一下,这是有道理的:charCode
与在按键中键入的字符相关联,该字符可能会被修饰键移动,因此会生成与基本字符不同的字符key; 在 keyup
和 keydown
上,因为这些事件不会立即与键入的新字符相关联,所以不会生成已知字符。)
因此,如果您正在做一些依赖于知道是否输入了 .
character 的事情,您将需要使用 keypress
事件.
如果你想知道在一些常见的键盘布局上标记为.
/>
的抽象键什么时候被释放,你可以这样做keyup
,使用 unixpapa 链接上列出的 keyCode
。像这样使用 keyCode
通常用于实际按键位置很重要的游戏和其他功能,而不是它在键入时生成的字符。
不幸的是,浏览器弄乱了一些键码,包括这个,所以你必须检查上面列出的所有可能的值,而且你不能可靠地分辨主键盘周期和小键盘之间的区别句号/删除键和主删除键。
关于javascript - 从 keyup 事件中获取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626328/