[英]DOMContentLoaded event does not fire
我想尝试IE的javascript的DOMContentLoaded事件。 但是该事件不会触发。 IE不支持此功能吗? 请对此提供帮助。 谷歌搜索后,我没有找到太多帮助。 我想尝试使用javascript而不是jquery。 请对此提供帮助。
IE9及更高版本和所有其他现代浏览器均支持DOMContentLoaded
。
对于使用onreadystatechange
的IE早期版本,有一些变通办法。 您可以在此处看到完整的跨浏览器,简单的javascript内容加载检测功能: 纯JavaScript等效于jQuery的$ .ready()如何在页面/ dom准备就绪时调用函数 ,您可以按原样使用,也可以可以从代码中借用概念。
基本思想是,在现代浏览器中使用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") {
同样,这里显示了完整的逻辑: 纯JavaScript等效于jQuery的$ .ready()如何在页面/ dom准备就绪时调用函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.