Javascript 是";“文件准备就绪”;应该像这样在IE上工作吗?

Javascript 是";“文件准备就绪”;应该像这样在IE上工作吗?,javascript,jquery,onload,document-ready,domcontentloaded,Javascript,Jquery,Onload,Document Ready,Domcontentloaded,出于各种原因,包括学习,我正在制作一个小型javascript框架 因此,我想实现“文档就绪”功能,因此我去检查jQuery如何在IE

出于各种原因,包括学习,我正在制作一个小型javascript框架

因此,我想实现“文档就绪”功能,因此我去检查jQuery如何在IE<9上伪造
DOMContentLoaded

问题是,它似乎没有按应有的方式工作。检查IE8和一个好的浏览器

逻辑是:应用css使div开始为红色,然后在“就绪”时使其为蓝色,在加载时使其为绿色。此外,有三个img标签带有假URL,因此在就绪和加载之间存在合成延迟

应该发生什么:
div显示红色的时间不应该超过一秒钟,如果有的话。理想情况下,看到的第一件东西应该是蓝色的。然后,当浏览器在无效图像上超时时,显示绿色

IE8上发生了什么:
div保持红色,直到所有图像“加载”(在这个合成示例中为timeout),然后变为绿色

再次强调,我并不是在要求修复,我是在问框架在IE8上这样做是否正确(我不再关心IE6-7),或者这是否是由于我以某种方式滥用jQuery造成的


注意:我知道如何手动绑定事件,我想问更多关于这是否是预期的/可接受的/一个bug/我的错误。

我将按照预期工作

jQuery正在为不支持
DOMContentLoaded
的浏览器使用
document.readyState
document.readyState
仅在页面资源加载完成时等于
complete

也许有一个很好的理由解释为什么他们不在“互动”上做这件事,但我对此并不乐观

编辑:这是您对document.readyState==interactive上的事件进行的更新

它在IE7和IE8中都有效

编辑

jQuery不使用“交互式”的原因是在IE9中启动得太早


我想可能有更好的方法来处理IE7和IE8的就绪时间,同时在IE9中仍能正常工作,我知道。。。这就是问题的关键所在。@canon,这就是为什么OP同时提供加载和就绪功能。真是太好了!因此,它应该检查
交互式
。现在,我不知道该怎么做,他们只是“放弃了对IE8的支持”?我接受答案(和+1),因为你的发现可以让我开始,但我仍然对jQuery的这种内置行为感到好奇。我希望这不会成为jQuery下一个版本的问题,因为计划中的1.9oldIE vs 2.0modern拆分。哇,那么他们会分割来源?这对我来说是新闻!现在已经是时候了,我相信jQuery如果只依赖ES5之类的现代功能,速度会快得多。有点像,很有趣。。。它似乎总是这样工作的,即使在jQuery1.6.4IE7和8Don't fire ready事件中,直到图像加载失败。