js获取按键出现错误。。所有字母键的返回值都是229,其他键则正常......唉~小弟调试几天了 ,求各位高人指点。。
代码如下:
window.addEventListener('keydown', getkeydown, false);function getkeydown(event){
var keyCode;//alert(event);
if(event == null){//alert(window.event.keyCode);
keyCode = window.event.keyCode;
if(talk==false || keyCode==13){
window.event.preventDefault();
//window.event.stopPropagation()
}
}
else{
keyCode=event.keyCode;
if(talk==false || keyCode==13){
event.preventDefault();
//event.stopPropagation()
}
}
//alert(keyCode);
if(talk==false){
if(keyCode == 37){
left1=true;
}
if(keyCode == 65 || keyCode == 97 ){
left2=true;
}
if(keyCode == 38){
up1=true;
}
if(keyCode == 87 || keyCode == 119) {
up2=true;
}
if(keyCode == 39){
right1=true;
}
if(keyCode == 68 || keyCode == 100){
right2=true;
}
if(keyCode == 40){
down1=true;
}
if(keyCode == 83 || keyCode == 115){
down2=true;
}
if(keyCode == 84 || keyCode == 116){
talk=true;
handltalk("begin");
}
}
if(keyCode == 13){
talk=false;
handltalk("end");
}
}
补充:这种情况在第一次不会出现,在多刷新几次后字母键就无法识别了~

解决方案 »

  1.   

    function Keyevt(evt){
                    evt = (evt) ? evt : ((window.event) ? window.event : "") //兼容IE和Firefox获得keyBoardEvent对象
                    var key = evt.keyCode?evt.keyCode:evt.which; //获得keyBoardEvent对象的键值
                    //((key >= 48 && key <= 57) || (key >= 65 && key <= 90))
                        alert(key+"send");
                }
    //调用:body onkeyup="Keyevt(event)">