gpt4 book ai didi

javascript - 手动解雇 domContentLoaded

转载 作者:行者123 更新时间:2023-11-30 13:16:43 25 4
gpt4 key购买 nike

我偶然发现了执行此操作的脚本:

"complete" === document.readyState ? setTimeout(I, 1) : document.addEventListener ? (document.addEventListener("DOMContentLoaded", X, h), window.addEventListener("load", X, h)) : window.attachEvent ? window.attachEvent("onload", X) : console.log("No available event.")

其中 X 和 I 是函数,h 为假。

它有什么作用?

最佳答案

也许这样你会更好地理解它:

if("complete" === document.readyState){
setTimeout(I, 1);
}else{
if(document.addEventListener){
document.addEventListener("DOMContentLoaded", X, h),
window.addEventListener("load", X, h));
}else{
if(window.attachEvent){
window.attachEvent("onload", X);
}else{
console.log("No available event.");
}
}
}

确实如此:

  1. 检查文档是否加载
  2. 如果是,则在 1 毫秒后调用函数 I
  3. 如果没有,它会检查浏览器是否支持addEventListener
  4. 如果支持,当加载 DOM 时,将调用函数 X(通过 DOMContentLoadedload 事件)
  5. 如果不支持,它会检查浏览器是否支持 attachEvent
  6. 如果支持,当加载 DOM 时,将调用函数 X(通过 load 事件)
  7. 如果不是,说明浏览器不支持 addEventListener 也不支持 attachEvent

我猜测函数 X 访问或修改了 DOM,因此上面的脚本在调用 X 之前检查 DOM 是否已完全加载。

关于javascript - 手动解雇 domContentLoaded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783745/

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