Javascript 香草JS ready()函数-什么是'document.documentElement.doscorl`?
我知道以前这里也有人问过类似的问题,但我找不到任何能问或回答这个特定问题的问题 我想要一个尽可能简单的纯JavaScript就绪函数,该函数在页面完全加载时运行,类似于jQueryJavascript 香草JS ready()函数-什么是'document.documentElement.doscorl`?,javascript,document-ready,Javascript,Document Ready,我知道以前这里也有人问过类似的问题,但我找不到任何能问或回答这个特定问题的问题 我想要一个尽可能简单的纯JavaScript就绪函数,该函数在页面完全加载时运行,类似于jQuery$(document).ready()函数 我一直在寻找这个例子: if (document.readyState === "complete" || (document.readyState !== "loading" && !document.document
$(document).ready()
函数
我一直在寻找这个例子:
if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
// Document already fully loaded
ready();
} else {
// Add event listener for DOMContentLoaded (fires when document is fully loaded)
document.addEventListener("DOMContentLoaded", ready);
}
function ready() {
// Handler here
}
但是给出这个例子的网站总是谈论对旧版本IE的支持,我不需要。我只想支持现代浏览器(Chrome Edge、Chrome、Firefox、Opera和Safari),并希望找到更简单的解决方案,特别是关于部分document.readyState!==“加载”&&!document.documentElement.doScroll
。我似乎找不到关于document.documentElement.doScroll
的太多信息,至少不是来自像MDN这样的可靠来源,所以我不知道它到底做了什么,或者删除它是否会导致ready函数在某些边缘情况下中断
我想我要问的是:
删除document.readyState!==“加载”&&!document.documentElement.doscorl
来自示例代码,如果您现在只关心当前的主要浏览器(上面列出),是否有更好的方法来实现这一点?它看起来像是一个IE的东西。不过,该检查很有用,因为DOMContentLoaded事件如果已经发生,则不会触发。因此,如果您不需要IE支持,我认为您可以移除Doscorl支票,留下:
if(document.readyState==“完成”){
//文档已完全加载
ready();
}否则{
//为DOMContentLoaded添加事件侦听器(在文档完全加载时激发)
文件。addEventListener(“DOMContentLoaded”,就绪);
}
函数就绪(){
//这里是处理程序
}
感谢您确认我的怀疑,这是IE特有的。我也得出了同样的结论,所以我觉得现在使用它更有信心。