javascript:如何检查属性是未定义的

时间:2010-10-21 08:43:47

标签: javascript

我的代码如下。

elem.onkeypress=function(e){
 if( (e.which===undefined?e.keyCode:e.which)==13 ){
   //dosomething
  }
}

在IE8,它出现错误:'which' is null or not an object

如何解决这个问题。

3 个答案:

答案 0 :(得分:5)

问题是IE中未定义e,因为没有事件对象作为参数传递给事件处理程序。您需要window.event属性:

elem.onkeypress=function(e) {
  e = e || window.event;
  var charCode = e.which || e.keyCode;
  if (charCode == 13) {
    //dosomething
  }
};

答案 1 :(得分:1)

一种选择是使用(e.hasOwnProperty('which') ? ...

答案 2 :(得分:0)

使用typeof:

if (typeof e.which == 'undefined' ? e.keyCode : e.which) == 13)