当前位置:首页 > 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实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…