这两个都是在页面加载后运行。执行顺序和在代码中的位置有关,也和window.onload后面的函数是否匿名有关。
1.如果window.onload是在body里定义的,也就是在body onload后面定义的,则只执行window.onload,不会执行body onload。即遵循“”从上到下依次加载,后者覆盖前者“的原则。
2.如果window.onload是在head里定义的(通常都是这样使用)。就要看等号后面的函数是不是匿名的。
只有非匿名的才会被执行,且两者都执行。按从上到下的顺序,先执行window.onload,后执行body.onload。
匿名的则会被body onload覆盖。即遵循“”从上到下依次加载,后者覆盖前者“的原则。
代码:
函数不是匿名的代码如下:(即引用预先定义的函数):
window.onload = xx();
函数是匿名的代码如下:
window.onload = function(){
//执行代码
};
补充:
顺便提一下jQuery的加载函数, 也是要等到文档完全加载后执行,入口如下:
$(document).ready(function(){
//执行代码
});
也可简写为
$(function(){
//执行代码
};
它和JavaScript 的window.onload的区别是不需要等到所有外部文件加载完毕,只要htmll 所有标签(DOM)都加载之后,就会去执行。并且不会被覆盖,可以多次执行。