4

我正在处理 keyup 事件,并且需要获取正在输入的字符。当我输入一个点时,data.keyCode 是 190,但是当我尝试使用 String.fromCharCode(190) 转换它时,我得到了“¾”符号。

这个参考告诉我 190 是句号。那个人说我没有任何机会进行跨浏览器按键处理。那么,我该如何正确处理呢?

4

1 回答 1

5

我正在处理 keyup 事件,并且需要获取正在输入的字符。

这是不可靠的。在keyup你只得到keyCode而不是charCode

(如果您考虑一下,这是有道理的: thecharCode与在按键中键入的字符相关联,它可能会使用修饰键移动,因此会生成与基本键不同的字符; on keyupand keydown,因为这些事件不会立即发生与正在键入的新字符相关联,没有要生成的已知字符。)

因此,如果您所做的事情依赖于知道是否输入了. 字符,则需要使用keypress事件来代替。

如果您想知道在某些常见键盘布局上标记为/的抽象何时发布,您可以使用unixpapa 链接上列出的 来做到这一点。像这样使用通常用于游戏和其他功能,其中实际关键位置很重要,而不是在键入时生成的字符。.>keyupkeyCodekeyCode

不幸的是,浏览器对包括这个在内的一些 keyCodes 造成了不一致的混乱,因此您必须检查上面列出的所有可能值,并且您无法可靠地区分主键盘周期、小键盘周期/删除之间的区别键和主删除键。

于 2011-10-02T12:51:22.240 回答