js页面加载完毕函数

在js和jquery使用中,常用到页面加载完成后执行某一方法。经过整理,大概是五种书写方式javascript

  1. 使用jQuery的$(function(){});
  2. 使用jquery的$(document).ready(function(){});
  3. 使用jQuery的$(window).load(function(){});
  4. 使用window.onload = function(){};
  5. 在标签上静态绑定onload事件,<body onload="aaa()">等待body加载完成,就会执行aaa()方法。

第1种和第2种本质上没有区别,第1种是第2种的简写方式。两个是document加载完成后就执行方法。html

第3种和第4种都是等到整个window加载完成执行方法体。二者也没有区别,只是一个使用dom对象,一个使用jQuery对象。java

那么,这五种方式,执行的前后顺序是怎么样的呢?jquery

经过下方代码验证发现:dom

        使用1和2不管位置放置在哪里,老是优先其他三种方式(缘由是:这两种方式是在document加载完成后就执行,后三种是等到整个window页面加载完成后才执行),这二者之间的执行顺序是谁在上方谁优先执行。函数

        使用5:<body onload="aaa()">在1,2以后执行。测试

        使用3和4这两种方式。他们二者执行顺序也是根据谁在上方谁先执行。spa

而且函数5和函数4有冲突,二者只有一个可以执行.net

详情请看window.onload和<body onload="">的关系code

  1. 这两个onload事件只能执行一个

  2. 在程序中设置一个onload的事件时:

    a.  只设置body onload属性中能够响应事件 

    b.  只设置window.onload函数中也能够响应事件,这是由于这两个都是body内容体加载结束执行的

  3. 在程序中设置两个onload的事件时

    a.  window.onload在head头部中出现的状况)只执行body onload属性的内容

    b.  window.onload出如今body onload属性的后面的状况.等加载完body的页面,再执行onload事件,后面onload事件是能够覆盖前面的onload事件的.

测试代码

<html>
<head>
    <title>页面加载完毕的执行顺序</title>
    <script src="./js/jquery-1.8.0.min.js"></script>
    <script type='text/javascript'>
        //按照执行顺序写的页面加载完毕
        $(function () {
            alert("1.jquery的document加载完毕,简写")
        });
        $(document).ready(function () {
            alert("2.jquery的document加载完毕,不简写");
        });
        $(window).load(function () {
            alert("3.jquery   window加载完毕");
        });
        window.onload = function () {
            alert("4.html自带方式  window加载完毕");
        };
        function after() {
            alert("写了我window.onload函数就不执行了");
        }
    </script>
</head>
<body onload="after()">

</body>
</html>
相关文章
相关标签/搜索