避免srcElement中的资源管理器抛出错误

时间:2012-10-05 09:30:55

标签: javascript html internet-explorer

我尝试避免资源管理器在srcElement中抛出错误,它没有这个函数。我有

function (event) {
    if (event.srcElement)
    {
        valueThis = event.srcElement.getAttribute("value");
    }
    else if(event.target)
      {
        valueThis = event.target.getAttribute("value");
     }
}

但它不起作用,因为InternetExplorer在e.srcElement

中抛出错误

3 个答案:

答案 0 :(得分:2)

如果您正在谈论IE< 9,那么event对象不会作为第一个参数传递给侦听器处理程序。所以

function(event)
{
    if(!event) alert("Dead");
}

可能会在IE中“死”。

更常见的方法是:

function(e)
{
    e=e?e:window.event;
    if(e.target){/*...*/}
    else if(e.srcElement){/*...*/}
}

答案 1 :(得分:0)

尝试使用对象方法hasOwnProperty(string property)

function (event) {
 if (event.hasOwnProperty('srcElement')) {
    valueThis = event.srcElement.getAttribute("value");
 }
 else if (event.hasOwnProperty('target')) {
  valueThis = event.target.getAttribute("value");
 }
}

答案 2 :(得分:0)

在我的情况下,一旦我手动验证代码,文本框上的必填字段验证器就会导致此问题。问题解决了。