keyCode,charCode,which
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;