javascript键盘常用事件分析

1  keydown 键按下的过程

2  keypress  与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件

3  keyup   键被松开

4 compositionstart   中文输入法开始输入触发,每次输入开始仅执行一次

5 compositionupdate  中文输入法输入触发   输入时实时触发

6 compositionend 中文输入完成的情况下   得到的结果就是最终输入完成的结果

7 DOMCharacterDataModified  每次输入都会触发,,无论中文还是英文输入

分析如下 

  1   英文情况下的触发顺序      


此时 4,5,6不会触发

2  中文情况下的触发顺序  只输入不确定  

        第一个q  触发的是 keyup  =>compositionstart   =>compositionupdate =>DOMCharacterDataModified =>keyup   

        第二个q 触发的是  keyup =>compositionupdate =>DOMCharacterDataModified =>keyup 

        compositionstart   只会在第一次输入的时候触发,,接着输入不会触发第二次 ,,如果输入完毕再次输入,会再次触发

         // 中文情况下,,keyup有时会触发两次,,暂时不理解

3  中文情况下的触发顺序  输入并确定

            Enter键并没有触发DOMCharacterDataModified  

            但是触发了compositionend 拿到的是当前输入的值

  4  可以拿来用做,判断当前是不是中文输入法,或者是判断输入的是不是功能键,,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容