在js和jquery使用中,常用到页面加载完成后执行某一方法。经过整理,大概是五种书写方式javascript
第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
这两个onload事件只能执行一个
在程序中设置一个onload的事件时:
a. 只设置body onload属性中能够响应事件
b. 只设置window.onload函数中也能够响应事件,这是由于这两个都是body内容体加载结束执行的
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>