Object不支持属性或方法'attachEvent'InternetExplorer 11

stu*_*ent 4 forms wordpress jquery internet-explorer-11

如果我在IE11中按下表单发送按钮"Saada" ,我将收到一个错误:

Object doesn't support property or method 'attachEvent'
Run Code Online (Sandbox Code Playgroud)

我发现这是一个IE11问题,但我发现的唯一解决方案是使用我的开发人员工具并将浏览器设置为以IE9模式运行.

但是我希望每个人都可以在不使用他们的开发者工具的情
你知道我可以尝试的其他解决方案吗?或者我可能需要导入其他一些Jquery库?

其他浏览器工作正常,但这只发生在IE11中

小智 12

javascript方法attachEvent被IE11中的方法addEventListener替换.

在IE> 8的情况下,JQuery 1.10.1仍然使用此方法.这将导致javascript编译错误.

JQuery 1.10.2似乎已经解决了这个问题.

希望这会有所帮助


Jac*_*son 7

attachEvent是旧版Internet Explorer中使用的已弃用函数.对于现代浏览器,请改用它.

el.addEventListener(evt,func,false);
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档

您还可以创建一个函数来检查要使用的函数

function addListener(el, event, func){
    if (el.addEventListener) {
       el.addEventListener(event, func, false);
    }
    else {
       el.attachEvent("on"+event, func);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以通过这样做来附加你的事件:

var element = document.getElementById('myElement');
addListener(element, 'click', function(){
    alert('You have clicked!');
});
Run Code Online (Sandbox Code Playgroud)

如果你无法做到这一点,那么填充物可能会起作用.尝试在某处插入:

if(!document.attachEvent){
  Object.prototype.attachEvent=function(event,func){
    this.addEventListener(event.split('on')[1], func);
  }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助