javascript中的onkeyup、onkeydown、onkeypress事件
来源:互联网 发布:淘宝标题优化技巧软件 编辑:程序博客网 时间:2024/06/10 07:40
在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别
1. onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应
onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。
2. onkeypress事件的keyCode对字母的大小写敏感,而onkeydown、onkeyup事件不敏感;
onkeypress事件的keyCode无法区分主键盘上的数字键和付键盘数字键的,而onkeydown、onkeyup的keyCode对主付键盘的数字键敏感。
3. 键盘事件包括keydown、kepress和keyup三种,每次敲击键盘都会(依次?)触发这三种事件,其中keydown和keyup是比较低级的接近于硬件的事件,通俗的理解是这两个事件可以捕获到你敲击了键盘中某个键;而keypress是相对于字符层面的较为高级点的事件,这个事件能够捕捉到你键入了哪个字符。可以这样理解,如果你敲击了A键,keydown和keyup事件只是知道你敲击了A键,它并不知道你敲的是大写的A(你同时按下了Shift键)还是敲的是小写a,它是以"键"为单位,你敲入了大写的A,它只是当成你敲下了shift和A两个键而已,但是keypress可以捕捉到你是敲入的大写的A还是小写的a.
4. 还要理解一个概念是键盘中的键分为字符(可打印)键和功能键(不可打印),功能键包括Backspace, Enter, Escape, the arrow keys, Page Up, Page Down, and F1 through F12 等
5. event对象属性
IE中:event对象只包含一个keyCode属性。
keydown和keyup 事件的keycode属性:你具体按下的键(也称为virtual keycode)
keypress事件的keyCode属性:你键入的字符(character code)
firefox中:event对象包含一个keyCode属性和一个charCode属性
keydown和keyup 事件:keyCode表示的就是你具体按的键,charCode为0
keypress事件:当你按的是可打印字符时,keyCode为0,charCode指的是你按下的字符的键值,当你按的是不可打印字符时,keyCode为按下的键的键值,charCode为0
注意:功能键不会触发keypress事件,因为keypress对应的就是可打印的字符,但是有一点IE和FF 中的区别,你按下一个字符键的同时按下alt键,在IE中不触发keypress事件,但是在ff中可触发,我发现在IE中按下ctrl键的时候只有按下q键会触发事件其他的要么不会触发事件,要么被浏览器IE自身捕获了,例如你按下ctrl_A,全选某个东西,你按ctrl_S保存文件,但是在FF中就好多了,事件都是先传递到网页,再向外传递,鉴于IE和FF中的区别,如果你比较懒的话,建议只使用keydow和keyup事件,这两种事件的使用在IE和FF中基本上没有区别,也不要捕获ctrl_A等被浏览器定义为快捷键的事件
键盘事件event对象还有三个其他的属性altKey, ctrlKey, and shiftKey 来判断你按下一个键的时候是否按下了alt等键,这三个属性使用比较简单,三种事件都可以使用,也不存在ie和ff的兼容性问题
6. event.which
Netscape/Firefox/Opera中不支持 window.event.keyCode,需要用event.which代替,IE用event.keCode方法获取当前被按下的键盘按键值,而NetScape/FireFox/Opera用的则是event.which
- javascript中的onkeyup、onkeydown、onkeypress事件
- onkeyup,onkeydown,onkeypress事件
- onkeydown 、onkeypress 、onKeyUp 事件
- js中的键盘事件:onkeydown、onkeypress、onkeyup
- Javascript中的onkeydown、onkeypress、onkeyup的区别
- onkeypress事件.onkeydown事件.onkeyup事件
- 浅析OnKeyPress事件和OnKeyDown/OnKeyUp事件
- 淺析OnKeyPress事件和OnKeyDown/OnKeyUp事件
- 浅析OnKeyPress事件和OnKeyDown、OnKeyUp事件
- 输入框的onkeydown onkeypress onkeyup事件
- JavaScript之onkeypress,onkeydown,onkeyup区别
- onkeyup,onkeydown和onkeypress
- onkeypress,onkeydown,onkeyup区别
- onkeyup,onkeydown,onkeypress
- onkeyup,onkeydown和onkeypress
- onkeyup,onkeydown和onkeypress
- onkeypress、onkeydown、onkeyup问题
- onkeypress、onkeydown、onkeyup
- linux 中解析命令行参数 (getopt_long用法)
- eclipse 最常用的快捷键
- Visual C# HTTP协议开发
- "<br />"和 "\r\n" 这两者有什么区别??
- 第七周 任务三
- javascript中的onkeyup、onkeydown、onkeypress事件
- sqlmap gui
- 线程同步的方法
- The virtual functions table
- h1 h2使用方法
- JS与AS3.0的交互
- HTML5 Top 10 Threats Stealth Attacks and Silent Exploits
- BBC遭受来自伊朗的攻击
- ERP的安全设计:Oracle Fusion Applications的安全架构