js中有window.onload和<BODY>中的onload属性同时存在时

来源:互联网 发布:mac ps cs6 破解文件 编辑:程序博客网 时间:2024/04/30 23:53

转自于http://topic.csdn.net/u/20100608/14/aa805ed6-0820-47c7-b866-6dd93d90ea67.html (10楼)

情况一,window.onload指定的function是匿名的,则只执行后者,且动作是后者的动作。如:

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

----显示:acd
情况二,window.onload指定的function不是匿名的,则都会执行,前者先于后者。如:

<html> <head> <script type="text/javascript"> alert('a');window.onload=fn(); // 后续脚本不执行 function fn(){ alert('b');} alert('c'); </script> </head>  <body onload="alert('d');"> </body> </html>

----依次显示:abd
window.onload在<BODY>中
情况三,window.onload指定的function是匿名的,则只执行后者,但动作前者是前者的动作。如:

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

----依次显示:bdc
情况四,window.onload指定的function不是匿名的,则都会执行,前者优于后者。如:

<html> <head> </head> <body onload="alert('a');"> <script type="text/javascript"> alert('b');window.onload=fn(); // 后续脚本未执行 alert('c'); function fn(){ alert('d'); } </script> </body> </html>

----依次显示:bda


原创粉丝点击