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

拈花ヽ惹草 提交于 2019-11-30 17:54:38

问题


If I press the form send button "Saada" in IE11, I will get an error:

Object doesn't support property or method 'attachEvent'

I have found that this is an IE11 problem, but the only solution I have found is to use my developer tools and set the browser to run in IE9 mode for example.

But I want everyone to use my website without using their developer tools.
Do you know some other solution I could try. Or maybe I have to import some other Jquery libraries?

Other browsers work fine, but this only happens in IE11


回答1:


attachEvent is a deprecated function used in older versions of Internet Explorer. For modern browsers use this instead.

el.addEventListener(evt,func,false);

See documentation here

You could also create a function which checks which function to use

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

Then you can attach your event by doing this:

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

If you are unable to to this then perhaps a polyfill will work instead. Try to insert this somewhere:

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

Hope this helps




回答2:


The javascript method attachEvent was replaced with the method addEventListener in IE11.

JQuery 1.10.1 still uses this method in case of IE > 8. This will cause javascript compilation errors.

JQuery 1.10.2 seems to have solved this problem.

Hope this will help



来源:https://stackoverflow.com/questions/28659450/object-doesnt-support-property-or-method-attachevent-internetexplorer-11

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!