藤原辽子黑人:javascript键盘事件总结

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 23:08:48
js的键盘事件,简单总结一下学到的东西。 Firefox 返回键值 keyCode(keypress) 功能键(Shift,Ctrl,Alt,PrintScreen,ScrollLock无返回值)返回正确值,以外的所有键值皆为0 keyCode(keydown) 返回除PrintScreen外所有键值,字母键皆以大写状态显示键值(65-90) keyCode(keyup) 返回除PrintScreen外所有键值,字母键皆以大写状态显示键值(65-90) charCode(keypress) 返回字符键大小写键值(65-90,97-122),Shift,Ctrl,Alt,PrintScreen, ScrollLock无返回值,其他所有键值为0 charCode(keydown) 所有键值为0 charCode(keyup) 所有键值为0 IE 返回键值 keyCode(keypress) 返回出系统按键外所有字符键的正确值(区分大小写状态65-90,97-122) keyCode(keydown) 返回除PrintScreen外所有键值,字母键皆以大写状态显示键值(65-90) keyCode(keyup) 返回除PrintScreen外所有键值,字母键皆以大写状态显示键值(65-90) charCode IE不支持该属性

关于三个键盘事件的区别网上通常这样解释

  • onkeydown:在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。
  • onkeypress:在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。
  • onkeyup:在用户放开任何先前按下的键盘键时发生。

通俗的理解可以像以上那样,但其实并不是如此,我的试验也证实像上下键、退格、回车等在onkeypress事件里也可以在部分浏览器中(如firefox)被识别。这其中包含keycode向charcode转化,系统对输入流接收、处理、输出等的复杂过程,并且不同浏览器的处理也不尽相同。应该在实际应用中具体把握,明天去公司把我写的测试程序补充上。

特别注意一下,在Opera下,对于onkeydown的默认行为是不能用event.preventDefault()来取消的。