我可以假设DOM还没有准备好动态加载的JS脚本吗?

时间:2009-02-20 07:45:44

标签: javascript dom dynamic onload

我编写了一个外部脚本,需要在DOM准备就绪后运行(或者在onload之后如果不可能的话)。

我使用此方法动态加载脚本,因为我需要脚本上的参数:

<script type="text/javascript">
document.write(unescape("%3Cscript src='mydomain.com/script.js.php?u="+encodeURIComponent(window.location.host)+"' type='text/javascript'%3E%3C/script%3E"));
</script>

要按时启动脚本,我使用跨浏览器方法附加dom ready或onload事件。

我的问题:当我的脚本运行并立即运行我的脚本或DOM没有准备好,并且附加到DOM就绪事件(或文档加载)时,我可以假设DOM已准备就绪吗?

如果我无法确定,我的问题是如何在我的脚本运行时判断DOM是否已经准备好(在不同的浏览器上)?在这种情况下,在DOM就绪或文档加载事件上启动脚本的方法将不起作用,因为事件已经被触发。

注意:1。我无法控制脚本将附加到的网站。 2.不能使用Jquery或其他库。

2 个答案:

答案 0 :(得分:2)

你几乎可以肯定dom尚未准备就绪。

This是一个很好的参考,可以让你按照自己的意愿工作。

我要么:

1)动态加载该脚本,然后将函数附加到onload甚至用异地.js调用/做任何你想做的事。

2)仅在DOM准备好后才加载脚本。

答案 1 :(得分:0)

将脚本放在文档body的末尾附近。调用脚本时,上述任何内容都可用(因为浏览器必须解析它以查看脚本标记; QED)。

请注意,当时仍可以加载其他资源(如图片或框架)。