javascript
  • dom
  • dynamic
  • onload
  • 2009-02-20 84 views 0 likes 
    0

    我写了一个外部脚本,需要在DOM准备好之后运行(或者在onload之后,如果不可能的话)。我可以假设DOM尚未准备好动态加载JS脚本吗?

    我用这个方法来动态加载脚本,因为我需要的脚本参数:

    <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准备好或onload事件事件的脚本。

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

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

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

    回答

    2

    你几乎可以确定dom还没有准备好。

    This是一个很好的参考,可以让你按照你的想法工作。

    我要么:

    1)负载动态该脚本,然后附加功能为onload甚至调用/做任何你想要与异地的.js。

    2)DOM准备就绪后才加载脚本。

    0

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

    请注意,其他资源(如图像或帧)仍然可以在当时加载。

    相关问题