一、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