今天研究了一下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绑定,这样是最好不过了!