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

"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毫秒后调用函数I
如果不是,它将检查浏览器是否支持addEventListener
如果支持,则在加载DOM时,将调用功能X(通过DOMContentLoadedload事件)
如果不是,它将检查浏览器是否支持attachEvent
如果支持,则在加载DOM时,将调用函数X(通过load事件)
如果不是,则表示浏览器不支持addEventListenerattachEvent


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

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

10-12 12:39
查看更多