gpt4 book ai didi

javascript - DOMContentLoaded 事件不会触发

转载 作者:行者123 更新时间:2023-11-28 08:19:10 25 4
gpt4 key购买 nike

我想尝试 IE 的 javascript DOMContentLoaded 事件。但该事件不会触发。 IE 不支持这个吗?请帮忙解决这个问题。谷歌搜索后我没有找到太多帮助。我想在 javascript 而不是 jquery 中尝试这个。请帮忙解决这个问题。

最佳答案

DOMContentLoaded 在 IE9 及更高版本以及所有其他现代浏览器中受支持。

对于早期版本的 IE,有使用 onreadystatechange 的解决方法。您可以在此处查看完整的跨浏览器、纯 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

关于javascript - DOMContentLoaded 事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com