Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  javascript  >  正文 JavaScript键盘事件(开启输入法时)

JavaScript键盘事件(开启输入法时)

发布时间:2015-08-14   编辑:www.jquerycn.cn
本文介绍了javascript键盘事件的用法,在开启输入法后如何用js监听键盘事件,感兴趣的朋友参考下。

本节内容:
各浏览器下javascript键盘事件用法举例
 
一,测试环境
系统:Windows Vista Ultimate SP1
输入法:谷歌拼音输入法 1.2.30.71
IE版本:ie6, ie7, ie8 beta1
Firefox版本:2.0.0.16, 3.0.1
Safari版本:3.1.2
Opera版本:9.51

二,测试结果
浏览器  输入法未开启  输入法开启
Firefox 
正常按下再放起A键,会依次触发keydown, keypress, input, keyup
仅按下修饰键(Ctrl/Shift/Alt)时,不会触发keypress. 注意:按下Esc, Insert, Tab, Pause, Left, Up, Enter等键时,也会触发keypress. 小结:keypress在按下非字符键时,有些会触发,有些不会触发,具体浏览器还不同。

仅在输入框的值有变化时,才会触发input. 比如Backspace键会引起值的变化,因此会触发input. 但是要注意:光标在输入值最后面时,按下Delete键不会改变输入值,但依旧会触发input.

按住某键不放时,会连续触发keydown. 当按下的是会触发keypress的键(参考上面第2条)时候,还会连续触发keypress. 同样,如果按下的是会触发input的键,也会连续触发input.
Ctrl+C/V/X快捷键粘贴复制等操作时,会依次触发keydown, keydown, keypress, input, keyup, keyup. 其中input仅在值有变化时才触发(比如粘贴一张图片到文字输入框时,不会触发input)。

Ctrl+Z/Y操作时,和第5条规律一致。
通过鼠标右键进行粘贴复制等操作时,仅会触发input.
输入法中输入第一个字符时,触发keydown, keypress. 输入过程中不会触发键盘事件,输入完成时,会触发input, input, keyup.

输入法开启时,输入数字时,和输入法未开启时一致。

IE  和Firefox基本一致,就是input改成propertychange.
注意:
2. 在ie中,仅字符键会触发keypress. 这比firefox强。
3. 在ie中,Esc和Backspace功能一样,这和firefox不同。在ie中,Delete键没有改变值时,不会触发propertychange.
5. 在ie中,Ctrl+C/X/V不会触发keypress.
6. 在ie中,如果监听的事件中YAHOO.log这种页面输出的语句时,会导致Ctrl+Z/Y失效。没有输入语句时不会。(这可以认为是IE的Bug) 
输入法中输入第一个字符时,触发keydown, keyup. 输入过程中也会连续触发keydown, keyup. 输入完成时,触发keydown, propertychange, keyup. (无论怎样都不会触发keypress)
输入法开启时,输入数字时,和输入法未开启时一样,但不会触发keypress.

Opera  大部分和Firefox一致。注意以下几条:
2. 所有键都会触发keypress.
4. 连续按下某键时,仅会连续触发keypress. (这个处理比其它浏览器合理)
5. 多个keypress.  和上面的浏览器都不同,仅在输入完成时触发input.

Safari  大部分和Firefox一致。注意以下几条:
2. 和IE类似,仅字符键会触发keypress.
5. 和IE一致。 
输入法中输入第一个字符时,触发keydown, input, keyup. 输入过程中会连续触发keydown, input, input, keyup. 输入完成时,触发keydown, input, input, keyup. (和IE一样,不会触发keypress)
输入法开启时,输入数字时,和IE一样,不会触发keypress.

您可能感兴趣的文章:
JavaScript键盘事件(开启输入法时)
JavaScript监听IME键盘输入事件实例详解
JavaScript键盘事件深入解析
javascript键盘响应事件
javascript键盘鼠标等事件对照表
笔记本键盘打不出字怎么办
U盘启动硬盘怎么分区 U盘启动硬盘分区方法
jquery onpropertychange键盘事件用法举例
键盘事件keydown,keypress,keyup有哪些区别
javascript键盘事件用法总结

关键词: javascript键盘事件  键盘事件   
[关闭]