一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。
keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。
但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。
传递给keydown、keypress和keyup事件句柄的事件对象有一些通用的属性。如果Alt、Ctrl或Shift和一个按键一起按下,这通过事件的altKey、ctrlKey和shiftKey属性表示,这些属性在FireFox和IE中是通用的。
本文详细解释了键盘事件的工作原理,包括keydown、keypress和keyup三个阶段。文章指出keydown和keyup事件更接近底层,而keypress则用于处理可打印字符。此外,还讨论了不同浏览器如Firefox和IE在处理这些事件时的行为差异。
695

被折叠的 条评论
为什么被折叠?



