window.onload

Posted 阿里山QQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.onload相关的知识,希望对你有一定的参考价值。

 前端页面加载是从上往下,从左往右的顺序进行的,如果需要在整个页面加载完成之后再执行需要被执行的js代码,就可以使用window.onload了;

1.看下面一段代码,这段代码在执行的时候是有问题的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background: #f00;
        }
    </style>
    <script>
       // alert(document.getElementById(‘btn‘));  //null,表示取到的对象为空
                document.getElementById(‘btn‘).onclick = function(){
                document.getElementById(‘box‘).style.width = ‘200px‘;
                document.getElementById(‘box‘).style.height = ‘200px‘;
    };
</script>
</head>
<body>
<input type="button" name="btn" id="btn" value="按钮" />
<div id="box"></div>
</body>
</html>

原因: 页面中的代码一般会从上到下,从左到右的顺序执行;当代码走到18行的时候,会从页面中的id为btn的元素,,但是下面的代码还没有执行,所以他找不到,这样的话就会报错;

解决:window.onload = function(){当页面中的代码都加载完成之后,执行这里的代码;}

 

2、正确代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background: #f00;
        }
    </style>
    <script>
       // alert(document.getElementById(‘btn‘));  //null,表示取到的对象为空
        window.onload = function(){
                document.getElementById(‘btn‘).onclick = function(){
                document.getElementById(‘box‘).style.width = ‘200px‘;
                document.getElementById(‘box‘).style.height = ‘200px‘;

    };
        };
</script>
</head>
<body>
<input type="button" name="btn" id="btn" value="按钮" />
<div id="box"></div>
</body>
</html>

  

以上是关于window.onload的主要内容,如果未能解决你的问题,请参考以下文章

WebViewDidFinishLoad 在 window.onload 之后执行

window.onload

window.onload用法详解

window onload 与 img onload事件

emscripten window.onload 等效

关于javascript中window.onload的困惑