有没有一种方法可以对IE8进行编码,因此它可以用于IE8及以上版本,我试图找到一个JQuery解决方案,避免检查浏览器...(addEventListener在IE8中不起作用)
document.addEventListener('readystatechange', function () { alert("foo"); })
答案 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为您处理所有浏览器依赖项,这是我们使用它的原因之一。