Javascript 好的跨浏览器“;准备好了吗;事件而不使用jQuery?

Javascript 好的跨浏览器“;准备好了吗;事件而不使用jQuery?,javascript,onload,Javascript,Onload,我需要在不使用jQuery的情况下创建jQuery的ready事件的等价物。它需要在尽可能多的浏览器上工作,并且不能弄乱body.onload处理程序(即,如果已经有处理程序集,函数不应该覆盖它)。我检查了jQuery的代码,但不了解它是如何工作的,因为它使用了许多jQuery函数 有什么建议吗 编辑:我无法控制代码将被插入的位置,这就是为什么它需要在现有body.onload处理程序中尽可能地发挥作用。这也意味着我无法确定代码是否会插入页面底部(很可能不会插入)。只需在最底部添加您的标记即可。

我需要在不使用jQuery的情况下创建jQuery的
ready
事件的等价物。它需要在尽可能多的浏览器上工作,并且不能弄乱
body.onload
处理程序(即,如果已经有处理程序集,函数不应该覆盖它)。我检查了jQuery的代码,但不了解它是如何工作的,因为它使用了许多jQuery函数

有什么建议吗


编辑:我无法控制代码将被插入的位置,这就是为什么它需要在现有body.onload处理程序中尽可能地发挥作用。这也意味着我无法确定代码是否会插入页面底部(很可能不会插入)。

只需在最底部添加您的
标记即可。这样,它将只在所有其他内容加载完毕后加载。

这可能有助于:

DOM就绪的非jquery实现


var ready=功能(f){
(/in/.test(document.readyState))?
设置超时('r('+f+'),9):
f();
};
就绪(函数(){
警报('DOM就绪!');
});

我建议尝试了解jQuerys是如何工作的,或者查看其他框架实现,如mootools。我相信它可能是重复的。jQuery通常会等待图像等完全加载完成吗?@dotweb:可能-但我不会依赖于此,尤其是当涉及到
iframe
s时。@Rikudo Sennin:jQuery的
ready
事件在DOM
load
事件之前触发,所以图像还不必完全加载。
<html>
  <head>
    <script>
      var ready = function (f) {
        (/in/.test(document.readyState)) ?
          setTimeout('r(' + f + ')', 9) :
          f();
      };
    </script>
  </head>
  <body>
    <script>
      ready(function () {
        alert('DOM Ready!');
      });
    </script>
  </body>
</html>