IE浏览器下event.keycode 缺少对象

这是ie特有的错误消息
因为事件对象在ie中是放在window下的,而在其他浏览器中是作为一个参数传入侦听器函数的,并且是第一个参数
你应该把事件侦听器的第一个参数设为e
然后函数第一句应该是
e=e||window.event;
这样在ie和其他浏览器中都能运行正常

错误写法:

if(event.keyCode==13){    //这是运行IE会报出缺少对象     这个错是IE特有的错误消息

}

正确写法:

if(window.event){

       if(event.keyCode==13){   

       }

}

 

js中event.keyCode在Firefox中失效的解决办法

在js使用event.keyCode,用Firefox打开时,就会出现event未定义的错误:这里写图片描述
这是因为firefox浏览器不支持 window.event.keyCode,

但是我们可以用event.which代替。为了使其能更具有普遍的兼容性,最好用event.keyCode|| event.which.
使用方法如下:

window.οnkeydοwn=function(e){
  var event = e || window.event;
//在火狐下event会做为参数传进来,ie下会在window下
  keyCode = event.which || event.keyCode;  //e.which是火狐下获取keyCode的方式,ie下使用e.keyCode获取

}
 

你可能感兴趣的:(IE浏览器下event.keycode 缺少对象)