对象不支持 属性 或方法 'attachEvent' Internet Explorer 11

Object doesn't support property or method 'attachEvent' InternetExplorer 11

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

Object doesn't support property or method 'attachEvent'

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

但我希望每个人都可以使用我的网站而不使用他们的开发者工具。
你知道我可以尝试的其他解决方案吗?或者我可能必须导入其他一些 Jquery 库?

其他浏览器可以正常使用,但仅在 IE11 中出现这种情况

attachEvent 是旧版 Internet Explorer 中不推荐使用的函数。 对于现代浏览器,请改用它。

el.addEventListener(evt,func,false);

查看文档 here

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

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

然后您可以通过以下方式附加您的活动:

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

如果您无法做到这一点,也许可以使用 polyfill。尝试将其插入某处:

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

希望对您有所帮助

在 IE11 中 javascript 方法 attachEvent 被替换为方法 addEventListener。

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

JQuery 1.10.2好像解决了这个问题

希望这会有所帮助