在使用keypress
keydown
事件进行键盘监控时发现几个奇怪的问题:
1、不论按下哪个按键,在火狐上监控到的keyCode=0
,而在其他浏览器上监控到的keyCode=229
。
不论是0还是229,这显然是不对的。
通过反复试验,发现可能是 中文输入法 导致的。在英文状态下获取到的keyCode
值是正常的,而在中文状态下就发生了异常。
2、keypress
无法监控功能键
在我的需求里,要监控“上、下、左、右”按键,并且屏蔽这4个键的默认操作。
一般屏蔽按键操作的做法是使用keypress
进行监听,获取到这几个键的keyCode
时return false;
来中断默认事件。
然而实际上却发现,keypress
无法监控到功能键,这时唯有使用keydown
进行替代。
这几个键盘事件执行的顺序是keypress
> keydown
> keyup