我正在研究JavaScript中的按键处理。我已经做了一些研究,想知道我对按键处理是否有正确的理解。
KeyDown/KeyUp事件 键下和键上事件由IE7+和Firefox 3.5+支持。我没有检查浏览器的早期版本,但我猜测它们也支持这些事件。
每个键盘上的键都会有一个keycode,这样说是正确的吗?
CharCode
Charcode值可在keypress上使用。大多数键将具有表示实际值的charcodes。有些键不会与charcode相关联,例如退格键、删除键和箭头键。
在keypress上,charcode与keycode相同,这样说是正确的吗?
事件顺序
- KeyDown
- KeyPress
- KeyUp
这个顺序因浏览器而异吗?例如,我有两个函数。第一个绑定到KeyDown事件,第二个绑定到KeyPress事件。调用一个KeyPress事件意味着KeyDown事件也将被调用,而我只想让其中一个事件起作用。
最后,我一直在考虑根据浏览器版本使用不同的按键处理程序。例如:
- 检查浏览器版本
- 根据浏览器版本获取键处理程序
这将引入额外的代码,但应简化维护。此外,将来,当我想要为不同的浏览器提供支持时,只需添加另一个例程即可,这不会影响现有的字符处理例程。
到目前为止,我一直在阅读http://www.quirksmode.org