我想为IE尝试javascript的DOMContentLoaded事件。但那件事并没有发生。这不支持IE。请帮忙。在谷歌上搜索我没有找到太多帮助。我想在javascript而不是jquery中尝试这个。请帮助。
答案 0 :(得分:0)
DOMContentLoaded
。
使用onreadystatechange
为早期版本的IE提供了解决方法。你可以在这里看到完整的跨浏览器,普通javascript内容加载检测功能:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it你可以按原样使用,也可以从代码中借用概念。
基本的想法是,您在现代浏览器中使用DOMContentLoaded
,在旧版本的IE中使用onreadystatechange
并回退到window onload
。第一个触发的是文档可以安全查询和修改的最早时刻。
上述链接代码的关键是这个逻辑:
// otherwise if we don't have event handlers installed, install them
if (document.addEventListener) {
// first choice is DOMContentLoaded event
document.addEventListener("DOMContentLoaded", ready, false);
// backup is window load event
window.addEventListener("load", ready, false);
} else {
// must be IE
document.attachEvent("onreadystatechange", readyStateChange);
window.attachEvent("onload", ready);
}
在文档准备就绪后,您也可能正在注册活动。如果是这种情况,您的事件处理程序将永远不会被调用,因为事件已经发生。您可以在安装事件处理程序之前检查文档状态,以查看它是否已经准备好,如下所示:
if (document.readyState === "complete") {
同样,这里显示了完整的逻辑:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it