window.onload与body onload (一)

一、body.onload

1.1onload的基本格式:

<html>
<head>
<script type="text/javascript">
function bol(){
	alert("body");
}
</script>
</head>
<body onload="bol();">
</body>
</html>

 

1.2 延迟加载:

<html>
<head>
</head>
<body onload="bol();">
<script type="text/javascript">
function bol(){
	alert("body");
}
</script>
</body>
</html>

  输出:body

 

  结论:body.onload是document加载结束后触发的事件。

 

1.3代码的重载:

 

<html>
<head>
<script type="text/javascript">
function bol(){
	alert("body1");
}
</script>
</head>
<body onload="bol();">
<script type="text/javascript">
function bol(){
	alert("body2");
}
</script>
</body>
</html>

 输出:body2

 

 结论:js函数的重载,是完全覆盖之前的版本。执行最新的版本。

 

1.4多次处理:

<html>
<head>
<script type="text/javascript">
function bol1(){
	alert("body1");
}
</script>
</head>
<body onload="bol1();bol2();">
<script type="text/javascript">
function bol2(){
	alert("body2");
}
</script>
</body>
</html>

 输出:body1->body2

 

 结论:可以写多个函数,来供我们处理需求和调用。

 

二、window.onload

2.1基本格式:

<html>
<head>
<script type="text/javascript">
window.onload = function(){
	alert("window");
}
</script>
</head>
<body>
</body>
</html>

 输出:window

 

 

2.2

<html>
<head>
</head>
<body>
<script type="text/javascript">
window.onload = function(){
	alert("window");
}
</script>
</body>
</html>

 输出:window

 

 结论:window.onload事件是document加载结束之后才触发。

 

2.3

<html>
<head>
<script type="text/javascript">
window.onload = function(){
	alert("window1");
}
</script>
</head>
<body>
<script type="text/javascript">
window.onload = function(){
	alert("window2");
}
</script>
</body>
</html>

 输出:window2

 

 结论:我把这种定义onload的事件处理方式叫:匿名式。匿名式的代码会发生覆盖,后者执行。

 

2.4 懒汉式:

<html>
<head>
<script type="text/javascript">
window.onload = wol;
function wol(){
	alert("window1");
}
</script>
</head>
<body>
<script type="text/javascript">
window.onload = wol;
function wol(){
	alert("window2");
}
</script>
</body>
</html>

 

<html>
<head>
<script type="text/javascript">
window.onload = wol1;
function wol1(){
	alert("window1");
}
</script>
</head>
<body>
<script type="text/javascript">
window.onload = wol2;
function wol2(){
	alert("window2");
}
</script>
</body>
</html>

 

输出:window2

 

 结论:我把这种window.onload的处理定义方式叫做懒汉式,是因为它并不会立即执行定义,而是会发生代码的覆盖。只执行最后的代码。相比这种定义,还有一种饿汉式。

 

2.5饿汉式

<html>
<head>
<script type="text/javascript">
function wol1(){
	alert("window1");
}
window.onload = wol1();
</script>
</head>
<body>
<script type="text/javascript">
function wol2(){
	alert("window2");
}
window.onload = wol2();
</script>
</body>
</html>

  输出:window1->window2

  结论:饿汉式会立即执行。其代码执行的时机就是加载的时刻。看下面的代码也许就更清楚了:

  

<html>
<head>
<script type="text/javascript">
alert(1);
function wol1(){
	alert("window1");
}
window.onload = wol1();
</script>
</head>
<body>
<script type="text/javascript">
function wol2(){
	alert("window2");
}
alert(2);
window.onload = wol2();
</script>
</body>
</html>

 输出:1->window1->2->window2 

 

你可能感兴趣的:(window)