Javascript readyState complete和onload之间的间隙

Javascript readyState complete和onload之间的间隙,javascript,Javascript,我正在将此代码注入一个网站。有没有可能不执行loader.load()呢 if (document.readyState === 'complete') { loader.load(); } else { window.addEventListener('load', () => { loader.load(); }); } 不确定您的代码是否有问题(很可能没有),但为了保持一致,我会避免将文档和窗口混用 if(document.readyState=='com

我正在将此代码注入一个网站。有没有可能不执行loader.load()呢

if (document.readyState === 'complete') {
  loader.load();
} else {
   window.addEventListener('load', () => {
     loader.load();
   });
}

不确定您的代码是否有问题(很可能没有),但为了保持一致,我会避免将
文档
窗口
混用

if(document.readyState=='complete'){
loader.load();
}否则{
document.addEventListener('readystatechange',(事件)=>{
如果(event.target.readyState==='complete'){
loader.load();
}
});
}

但始终存在这样的可能性,即在您的前面附加了另一个
load
处理程序,该处理程序调用
事件.stopImmediatePropagation()
,这将导致不调用所有后续事件处理程序

window.addEventListener('load',(事件)=>{
事件。stopImmediatePropagation();
console.log('load 1');
})
window.addEventListener('load',(事件)=>{
console.log('load 2');

})
不确定您的代码是否有问题(很可能没有),但为了保持一致,我会避免将
文档
窗口
混用

if(document.readyState=='complete'){
loader.load();
}否则{
document.addEventListener('readystatechange',(事件)=>{
如果(event.target.readyState==='complete'){
loader.load();
}
});
}

但始终存在这样的可能性,即在您的前面附加了另一个
load
处理程序,该处理程序调用
事件.stopImmediatePropagation()
,这将导致不调用所有后续事件处理程序

window.addEventListener('load',(事件)=>{
事件。stopImmediatePropagation();
console.log('load 1');
})
window.addEventListener('load',(事件)=>{
console.log('load 2');

})
谢谢。但我的问题更像是,在注入过程中是否有一段时间,这些方法都不再是真的,因此loader.load()将被执行。就像第一次你太早了,另一次你太晚了,错过了一切。@Brütüs,是的,我明白了。据我所知,不会有任何差距。但我的建议是使用相同的属性进行检查,使其更加健壮。(readystate==='complete'处理与
窗口相同的情况。load
)@Brütüs还增加了代码可能无法运行的可能性,这不是由于间隙,而是由于另一个处理程序停止了事件传播。谢谢。但我的问题更像是,在注入过程中是否有一段时间,这些方法都不再是真的,因此loader.load()将被执行。就像第一次你太早了,另一次你太晚了,错过了一切。@Brütüs,是的,我明白了。据我所知,不会有任何差距。但我的建议是使用相同的属性进行检查,使其更加健壮。(readystate==='complete'处理与
window.load
相同的情况)@Brütüs还增加了代码可能无法运行的可能性,这不是由于间隙,而是由于另一个处理程序停止了事件传播。