一、body.onload
1.1onload的基本格式:
<html>
<head>
<script type="text/javascript">
function bol(){
alert("body");
}
</script>
</head>
<body οnlοad="bol();">
</body>
</html>
1.2 延迟加载:
<html>
<head>
</head>
<body οnlοad="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 οnlοad="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 οnlοad="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