当前位置:首页 > JavaScript

js实现onload

2026-03-13 15:33:38JavaScript

在 JavaScript 中实现 onload 事件

onload 事件在页面或资源完全加载后触发。以下是几种常见的实现方式:

使用 window.onload

window.onload = function() {
    console.log('页面和所有资源已加载完成');
};

使用 addEventListener

window.addEventListener('load', function() {
    console.log('页面和所有资源已加载完成');
});

针对特定元素的 onload

js实现onload

const img = document.createElement('img');
img.onload = function() {
    console.log('图片加载完成');
};
img.src = 'image.jpg';

动态脚本加载的 onload

const script = document.createElement('script');
script.onload = function() {
    console.log('脚本加载完成');
};
script.src = 'script.js';
document.head.appendChild(script);

注意事项

js实现onload

  • window.onload 会等待页面所有资源(图片、样式表等)加载完成。
  • 如果只需要 DOM 结构加载完成,可以使用 DOMContentLoaded 事件。
  • 多次赋值 window.onload 会覆盖之前的处理函数,而 addEventListener 可以添加多个监听器。

使用 DOMContentLoaded 的替代方案

如果不需要等待所有资源加载,可以使用更快的 DOMContentLoaded

document.addEventListener('DOMContentLoaded', function() {
    console.log('DOM 加载完成,无需等待图片等资源');
});

现代替代方案:deferasync

对于脚本加载,现代浏览器支持这些属性:

<!-- 异步加载,不阻塞渲染,加载完成后执行 -->
<script src="script.js" async></script>

<!-- 延迟执行,直到 DOM 解析完成 -->
<script src="script.js" defer></script>

兼容性处理

对于老旧浏览器,可以使用以下模式:

function ready(fn) {
    if (document.readyState !== 'loading') {
        fn();
    } else {
        document.addEventListener('DOMContentLoaded', fn);
    }
}

ready(function() {
    console.log('DOM 准备就绪');
});

标签: jsonload
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…