记录踩的一个有关中文输入法的坑
最近踩了一个坑,是关于中文输入法的,想记录一下。
TL;DR
怪异行为:在手机端,调用中文输入法的数字键盘,输入数字时,所返回的 keyCode 为 229。
产生原因:
If an Input Method Editor is processing key input and the event is keydown, return 229.
解决方法: 因为 ASCII
是 unicode
的子集,所以可以巧妙利用 charCodeAt
方法得到正确的 keyCode
值
|
|
|
|
|
TIL:
charCodeAt
方法返回 unicode 码点KeyboardEvent.keyCode
已废弃,推荐使用KeyboardEvent.code
Gboard
输入法在type="password"
的输入框会自动关闭中文输入法- 事件顺序:
keydown->keypress->keyup
References:
规范链接