keyCode,charCode,which

时间:2023-03-08 17:16:04

1.触发顺序keydown keypress keyup,但keypress事件只有输入相关按键才会触发,功能按键不会触发keypress事件(keypress事件有个额外的charCode属性)

2.keypress事件中keyCode大小写敏感,keydown,keyup不敏感

3.keypress对主副键盘的数字键不敏感,keydown,keyup敏感

4.keypress事件,当你按的是(a-z)时,keyCode为0,charCode为键值,当你按的不是(a-z)的非功能键时,keyCode为键值,charCode为0 (ff  only)

5.NetScape/FireFox/Opera老版本不支持keyCode,而是用which属性

6.要阻止浏览器的默认(f5)行为要在keydown上阻止,浏览器的默认实现应该就是在这个事件上,而如果在keyup上来阻止默认行为就为时已晚了

备注:IE下阻止浏览器的默认行为(例如F5刷新页面)时需将e.keyCode=0(并且必须是原生的event,不能是jquery event),否则无法阻止.

safari浏览器貌似不允许禁用一些默认行为(f5,backspace)

var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;