1.对键盘事件分类
keyCode对于 keypress 事件,返回的是被敲击键的UniCode编码.
okeyCode对于onkeydown,onkeyup事件,返回的是虑拟的键盘码
2.分浏览器来说(对于keypress事件,其他没差别)
FF中:event.keyCode
生成的字符的键,如A-Za-z0-9,则返回0;
而其他的键,则正常返回keyCode值
FF中:event.which(则正好相反)哈,郁闷的吧.....
还有一更郁闷的(把oEvent.keyCode的值赋给oEvent.charCode值存在,但本身则返回0)
eg:
event.charCode=(event.type==keypress)?event.keyCode:0;
码1:" charCode:" + oEvent.charCode //有返回值
码2: " keyCode:" + oEvent.keyCode //返回值为0
总结:event.which并不是所有的键都对FF友好,键盘翻页,用(event.keyCode==37)而不使用(eveht.which==37)
未完成例子:
eg:
function keyEvent(event){
var e=event||window.event;
if(window.event){
oDiv.innerHTML+=e.type + e.keyCode + "/n/r";
}else{
if(event.keypress){ //判断条件出错,因生成字符的键也存在keypress........
oDiv.innerHTML+=e.type + e.which + "/n/r";
}else{
oDiv.innerHTML+=e.type + e.keyCode + "/n/r";
}
}
}
注:FF生成字符,不成字符都存在keypress