定义load事件监听的两种方法:

一是通过addEventListener,把load事件绑定到window上。

1
2
3
window.addEventListener('load', function() {
    console.log('window onload');
});

二是直接在body上添加onload属性。

1
2
<body onload="console.log('onload')">
</body>

  

Tips

根据DOM Level2 Events文档的描述,load事件应该在document而非window上被触发。然而由于所有的浏览器都已经实现了在window上触发load事件,为了向后兼容性的考虑,在浏览器中load事件的触发和spec上描述不一致。

 

两种定义load事件监听方式的执行顺序

如果在页面中同时添加这两种方式,谁会先被触发呢?触发点取决于何时加载注册load事件的脚本。按照HTML页面的加载顺序,如果把脚本放到head里加载,那么在window上注册的load事件会先触发,如果把脚本放到body里加载,那body上的onload事件会被先触发。

 

一般来说,任何在window上注册的事件,都可以通过在body上定义相应的事件属性来触发,这是因为在HTML里无法访问window元素。推荐的做法是尽可能的使用Javascript的方式注册事件。

 

Posted on   單筱寒  阅读(5901)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示