6

所以我知道,如果你使用 jQuery,你可以使用$(document).load(function(){});,以便在整个页面加载后执行你写入函数的任何代码,但是如果你不使用 jQuery 而只使用 JS,有没有办法做类似的事情?

例如...

<html>
    <head>
        <script type="text/javascript">
            var box = document.getElementById('box');
            alert(box);
        </script>
    </head>
    <body>
        <div id="box" style="width:200px; height:200px; background-color:#999; 
margin:20px;"></div>
    </body>
</html>  

如果我使用这种方法,警报就会说null。那么有没有办法让 js 代码在页面加载后运行?

4

4 回答 4

14

我用:

<script type="text/javascript">
    window.onload = function(){
        //do stuff here
    };
</script>

这样您就不必在 html 中使用任何 onload 标签。

于 2013-05-25T20:11:25.507 回答
8

最简单的方法是简单地将脚本放在文档的末尾,通常就在结束 body 标记之前:

<html>
<head>

</head>
<body>
<div id="box" style="width:200px; height:200px; background-color:#999; margin:20px;"></div>
<script type="text/javascript">
    var box = document.getElementById('box');
    alert(box);
</script>
</body>

</html>
于 2013-05-25T20:07:27.260 回答
4

您可以使用多种方法来完成此操作。

最简单、最简单的方法是在正文标签的末尾添加脚本标签:

<html>
<head>
    <title> Example </title>
</head>
<body>
    <div>
        <p>Hello</p>
    </div>
    <script type="text/javascript">
        // Do stuff here
    </script>
</body>
</html>

jQuery 的做法类似于:

window.onload = function() {
    // Do stuff here
}

我通常只是用第二种方法,以防万一。

为了保证跨浏览器的兼容性,爬取jQuery的源码,找到它们使用的东西。

于 2013-05-25T20:18:10.207 回答
2

您可以在 body 标签中使用 onload。

<head>
   <script type="text/javascript">
      function doSomething() {
         //your code here
      }
   </script>
</head>
<body onload="doSomething()">
于 2013-05-25T20:09:57.957 回答