在整个DOM准备好之前执行JS

时间:2011-06-18 21:49:51

标签: javascript dom ready

好的,我发了两篇关于此的帖子但不知何故我无法理解它。

所以我总结说如果我们有这样的事情:

<script type="text/javascript" src="somefile.js"></script>
<script type="text/javascript">
func1();
</script>

和func1()在somefile.js中定义,保证在浏览器到达内联时运行。

但是,如果我有一个大页面(不考虑图像等,只是html),需要花费几秒钟加载并且DOM准备就绪(因为据我所知,当整个html代码有已经加载和解析了)我希望执行一些代码并处理已经加载的大页面的其余部分已加载的页面部分?

例如:

<div id="div1">Some div where content will be inserted by the inline javascript below</div>
<script type="text/javascript"> notifyPartLoaded("div1"); </script>

^^这样的事情存在吗?

1 个答案:

答案 0 :(得分:1)

我不确定您的问题是什么,但确保DOM准备就绪的一种简单方法是将JavaScript放在HTML的底部,就在结束</body>标记旁边。

<!doctype html>
<html>
    <head>
        <title>some title</title>
        <!-- this script could go toward the bottom too, but it must be before --> 
        <!--   your script if your script relies on it -->
        <script type="text/javascript" src="somefile.js"></script>
    </head>
    <body>  
        <div id="div1">Some div where content will be inserted by the inline javascript below</div>
        <!-- your HTML -->
        <!-- your HTML -->
        <!-- your HTML -->

        <!-- Place your script last -->
        <!-- ...though it would be better to have it in a separate file -->
        <script type="text/javascript"> notifyPartLoaded("div1"); </script>
    </body>
</html>

因为您的代码在所有其他元素之后,所以当您的代码最终加载并运行时,它们将存在以进行操作。