繁体   English   中英

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

[英]Can I assume that DOM is not ready yet on dynamically loaded JS script?

我编写了一个外部脚本,该脚本需要在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 ready事件(或文档加载)?

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

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

您几乎可以确定dom尚未准备好。

是一个很好的参考,可以使您按需工作。

我会:

1)动态加载该脚本,然后将函数附加到onload上,甚至可以使用该异地.js调用/执行任何操作。

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

将脚本放在文档body的末尾。 调用脚本时,以上任何内容均可用(因为浏览器必须已对其进行解析才能看到您的脚本标签; QED)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM