onload执行顺序

今天研究了一下window对象的onload事件执行的顺序,

首先,在页面body里加入

<body><script>alert('body inlined load');</script></body>

然后在head节点里加入

<script type="text/javascript" src="./j.js"></script>


j.js的内容如下:

$(function() {

alert('document init');

$(window).bind('load', function() {

alert('bind load');

});

});


window.onload = function() {

alert('onload');

}


$(function(){

alert('document init2');

$(window).bind('load',function(){

alert('bind load2');

});

});


最终执行的顺序应该是

body inlined load

document init

document init2

onload

bind load

bind load2

可见,直接写在离body最近处的是最先执行的,然后是jquery的ready函数里的代码,再是加载通过window.onload的处理函数内的代码,最后是通过jquery的bind函数绑定的处理代码,如果需要等页面内的全部元素加载好后再执行,可能通过指定window.onload=function(){}或通过jquery.bind绑定,这样是最好不过了!


原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/2291855.html