1. 程式人生 > >js中有window.onload和中的onload屬性同時存在時

js中有window.onload和中的onload屬性同時存在時

情況一,window.onload指定的function是匿名的,則只執行後者,且動作是後者的動作。如:

  1. <html>
  2.         <head>
  3.         <scripttype="text/javascript">
  4.         alert('a');  
  5.         window.onload=function(){    //   
  6.             alert('b');  
  7.         }  
  8.         alert('c');  
  9.         </script>
  10.         </head>
  11.         <bodyonload="alert('d');">
  12.         </body>
  13.   </html>

----顯示:acd
情況二,window.onload指定的function不是匿名的,則都會執行,前者先於後者。如:
  1. <html>
  2. <head>
  3. <scripttype="text/javascript"> alert('a');  
  4. window.onload=fn(); // 後續指令碼不執行 function fn(){  
  5.  alert('b');  
  6. } alert('c');  
  7.  </
    script>
  8. </head>
  9.  <bodyonload="alert('d');">
  10.  </body>
  11. </html>

----依次顯示:abd
window.onload在<BODY>中
情況三,window.onload指定的function是匿名的,則只執行後者,但動作前者是前者的動作。如:
  1. <html>
  2.         <head>
  3.         </head>
  4.         <bodyonload="alert('a');">
  5.         <scripttype
    ="text/javascript">
  6.         alert('b');  
  7.         window.onload=function (){      
  8.             alert('c');  
  9.         }  
  10.         alert('d');  
  11.         </script>
  12.         </body>
  13. </html>

----依次顯示:bdc
情況四,window.onload指定的function不是匿名的,則都會執行,前者優於後者。如:
  1. <html>
  2. <head>
  3. </head>
  4. <bodyonload="alert('a');">
  5. <scripttype="text/javascript"> alert('b');  
  6. window.onload=fn(); // 後續指令碼未執行 alert('c');   
  7. function fn(){   
  8. alert('d');   
  9. }  
  10.  </script>
  11. </body>
  12. </html>

----依次顯示:bda