支持IE8 for addEventListener

时间:2014-06-19 22:07:55

标签: jquery

有没有一种方法可以对IE8进行编码,因此它可以用于IE8及以上版本,我试图找到一个JQuery解决方案,避免检查浏览器...(addEventListener在IE8中不起作用)

document.addEventListener('readystatechange', function () { alert("foo"); })

2 个答案:

答案 0 :(得分:1)

这是一个简单的跨浏览器事件函数,可以在IE版本中使用IE6和所有其他浏览器:

// add event cross browser
function addEvent(elem, event, fn) {
    if (elem.addEventListener) {
        elem.addEventListener(event, fn, false);
    } else {
        elem.attachEvent("on" + event, function() {
            // set the this pointer same as addEventListener when fn is called
            return(fn.call(elem, window.event));   
        });
    }
}

addEvent(document, 'readystatechange', function() {
    alert("got it!");
});

当然,如果你已经有了jQuery,你可以使用:

$(document).ready(function() {
    alert("got it");
});

这将自动为您处理各种浏览器版本。


仅供参考,如果您真的想在没有jQuery的情况下尝试获得最佳的DOM加载检测,那么在javascript here中可以完全替代jQuery的.ready()。包含该功能后,您只需使用:

docReady(function() {
    alert("got it");
});

答案 1 :(得分:1)

如果您使用的是jQuery,则无需直接调用addEventListener。使用on

$(document).on("readystatechange", function() {
    alert("foo");
});

jQuery为您处理所有浏览器依赖项,这是我们使用它的原因之一。