当前位置:首页 > JavaScript

js实现ready

2026-03-14 15:08:05JavaScript

实现DOM加载完成事件

在JavaScript中,DOM加载完成是一个关键事件,通常需要确保脚本在DOM完全加载后执行。以下是几种实现方法:

使用DOMContentLoaded事件

现代浏览器支持DOMContentLoaded事件,它在HTML文档完全加载和解析后触发,无需等待样式表、图像等外部资源:

js实现ready

document.addEventListener('DOMContentLoaded', function() {
    // DOM已完全加载,可以安全操作DOM元素
    console.log('DOM fully loaded and parsed');
});

传统window.onload方法

window.onload会在整个页面(包括所有依赖资源如图片)加载完成后触发:

window.onload = function() {
    // 整个页面包括所有资源已加载完成
    console.log('All resources finished loading');
};

兼容旧浏览器的ready函数

对于需要兼容老旧浏览器的情况,可以封装一个跨浏览器的ready函数:

js实现ready

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

// 使用示例
ready(function() {
    console.log('DOM ready via custom function');
});

jQuery的$(document).ready()

如果项目中使用jQuery库,可以直接使用其提供的ready方法:

$(document).ready(function() {
    // jQuery方式的DOM ready
    console.log('jQuery DOM ready');
});

// 简写形式
$(function() {
    console.log('jQuery shorthand ready');
});

检测document.readyState

通过检查document.readyState属性可以了解文档当前加载状态:

if (document.readyState === 'complete') {
    // 文档已完全加载
} else {
    document.addEventListener('readystatechange', function() {
        if (document.readyState === 'complete') {
            // 文档加载完成处理
        }
    });
}

每种方法适用于不同场景,现代Web开发推荐优先使用DOMContentLoaded事件,它比window.onload更早触发且不等待外部资源。需要兼容IE8及以下版本时,可采用检测readyState的备用方案。

标签: jsready
分享给朋友:

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

节流js实现

节流js实现

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

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…