窗口的onload事件已经触发了吗?

7
我有一个小的JavaScript实用程序,可能会被预加载、懒加载或按需加载。当它被初始化时,它会向DOM添加一些内容。它是低优先级的,如果它被预加载,它可以等待onload事件触发后再运行,但如果它是懒加载,它可以立即运行。

目前,它正在检查页脚元素的ID是否存在,以确定它是否应该将事件监听器添加到window.onload事件中,还是直接运行。例如:

if ( document.getElementById("footer") ){
   Init()
} else {
   if (window.addEventListener){...}
   else if (window.attachEvent){...}
}

尽管目前可用,但这显然是一个相当糟糕的解决方案。 非jQuery相关的任何建议都将不胜感激!
1个回答

13

你应该使用document.readyState属性:

if (document.readyState === 'complete') {
   //do stuff
}

谢谢,由于某种原因,我认为在旧版IE中不支持它,但我刚刚检查了一下,在IE6中可以正常工作,这已经足够远古了。 - Patrick Clancey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接