windows.onload和body的onload属性的区别

关于windows.onload和body的onload属性的区别网上有些说法说的也不太统一,现在系统说下:
先看共同点: 都是body内容体加载结束执行;
window.onload 内部方式可以 推荐的
body onload属性: 内联或者内嵌方式可以, 内部也可以

首先,这两个onload事件只能执行一个
在程序中设置一个onload的事件时,第一种:只设置body onload属性中可以查找到body元素 ,第二种:只设置window.onload函数中也可以查找到body元素,这是因为这两个都是body内容体加载结束执行的
两者同时设置:只执行body onload属性的内容; (window.onload在head头部中出现的情况),另外,还有如果window.onload出现在body onload属性的后面的情况.无论顺序则么样,除了onload事件的代码,都是按照顺序来进行的,等加载完body的页面,再执行onload事件,后面onload事件是可以覆盖前面的onload事件的.具体看代码:
---------------------

复制代码
<!DOCTYPE html>
<html>   

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

   </body>   

</html> 
复制代码

执行结果是:a c d
ac先会alert出来没有疑问,对于bd,就是谁在下面就会执行谁,这是因为html标签的加载顺序是除onload之外从上向下加载,然后会按从上向下的顺序加载onload事件,所以下面的onload会把上面的onload事件给覆盖掉.(使用谷歌浏览器)
再看另外一个代码:

复制代码
<!DOCTYPE html>
<html>   

<head>   

   </head>   
   <body onload="alert('d');">  

   </body>   
     <script type="text/javascript"> 
       alert('a');
       window.onload=function () {  

       alert('b');  

         } ;

       alert('c');

   </script> 
</html>  
复制代码

按照上面的解释,执行结果是acb,和运行的结果是一致的.

posted @   笠航  阅读(2556)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示