window.onload事件已经触发了 [英] Has window.onload event already fired

查看:143
本文介绍了window.onload事件已经触发了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个小的javascript util,它可能会被预加载,延迟加载或按需加载。当它启动时,它会向DOM添加一些内容。它的优先级低,如果它被预加载,它可以等待onload事件在运行之前触发,但如果它是延迟加载的,它可以继续并立即运行。

I have a small javascript util which may get preloaded, lazy loaded or loaded on demand. When it's initiated it adds some stuff to the DOM. It's low priority and if it's preloaded it can wait for the onload event to fire before running, but if it's lazy loaded it can go ahead and run immediately.

目前正在检查查看是否存在页脚元素的ID以确定是否应将事件侦听器添加到窗口onload事件或仅运行。例如

Currently It's checking to see if the ID of the footer element exists to determine if it should add an event listener to the window onload event or just run. e.g.

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

虽然目前正在运作,但这显然是一个非常糟糕的解决方案。
任何非jQuery相关的改进建议都会感激不尽!

Although currently working, this is obviously a pretty poor solution. Any non jQuery related suggestions on improving this gratefully received!

推荐答案

你应该使用文件.readyState property:

You should use document.readyState property:

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

这篇关于window.onload事件已经触发了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆