我偶然发现了执行此操作的脚本:
"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
(通过DOMContentLoaded
或load
事件)如果不是,它将检查浏览器是否支持
attachEvent
如果支持,则在加载DOM时,将调用函数X(通过
load
事件)如果不是,则表示浏览器不支持
addEventListener
或attachEvent
我猜函数
X
访问或修改了DOM,因此上面的脚本在调用X
之前检查DOM是否已完全加载。关于javascript - 火domContent手动加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11783745/