我的代码如下。
elem.onkeypress=function(e){
if( (e.which===undefined?e.keyCode:e.which)==13 ){
//dosomething
}
}
在IE8,它出现错误:'which' is null or not an object
如何解决这个问题。
答案 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)