js_键盘与输入事件


按下的是非字符键时

  • 仅触发keydownkeyup事件,通过event.keyCode可以查询按下的是什么键。
  • 按下键按住不放会重复触发keydown事件,出于性能考虑有必要进行防抖处理或者进行其它限制。

按下的是字符键时

  • input输入框中按下字符键,触发keydown,keypress,textInput,keyup事件。
  • document按下字符键,触发keydown,keypress,keyup事件。
  • keypress在用户按下某个字符键时触发,无论这个字符是否显示。通过charCode属性获取按键字符对应的ASCII编码,再通过String.fromCharCode()方法获取输入值。在DOM3事件中被废弃,转而推荐textInput事件。
  • 按下字符键不放会重复触发keydownkeypress
  • textInput事件只能在输入框中触发,通过data属性获取输入的字符。

使用中文输入法时

  • document中与英文输入法无区别

  • 在输入框中,每次按键会触发keyup事件两次且两次触发的e.keyCode不一致,其触发顺序为keydown,keyup,keyup

  • 通过按键选中输入法中的候选字符时,触发顺序为keydown,textInput,keyup,keyup

  • textInput事件的data属性返回的只是编辑区域内的文本。通过点击字符键1选取某个汉字时,e.data返回的是具体的汉字文本而不是字符1

  • 测试


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM