我编写了一个外部脚本,需要在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或其他库。
答案 0 :(得分:2)
你几乎可以肯定dom尚未准备就绪。
This是一个很好的参考,可以让你按照自己的意愿工作。
我要么:
1)动态加载该脚本,然后将函数附加到onload甚至用异地.js调用/做任何你想做的事。
2)仅在DOM准备好后才加载脚本。
答案 1 :(得分:0)
将脚本放在文档body
的末尾附近。调用脚本时,上述任何内容都可用(因为浏览器必须解析它以查看脚本标记; QED)。
请注意,当时仍可以加载其他资源(如图片或框架)。