当前位置:首页 > JavaScript

js 实现ready

2026-04-07 04:13:35JavaScript

实现 DOM 加载完成的 ready 事件

在 JavaScript 中,ready 事件通常指 DOM 加载完成但其他资源(如图片)可能尚未加载完毕的状态。以下是几种实现方式:

js 实现ready

使用 DOMContentLoaded 事件

现代浏览器支持 DOMContentLoaded 事件,它在 DOM 树构建完成后触发,无需等待外部资源加载:

js 实现ready

document.addEventListener('DOMContentLoaded', function() {
    // DOM 已完全加载,可以安全操作
    console.log('DOM ready');
});

兼容老式浏览器的实现

对于旧版 IE 浏览器(IE8 及以下),需通过检测 document.readyState 实现兼容:

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

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

jQuery 风格的 $(document).ready()

若需模拟 jQuery 的 ready 方法,可扩展为以下形式:

function ready(callback) {
    if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading") {
        callback();
    } else {
        document.addEventListener('DOMContentLoaded', callback);
    }
}

// 调用方式
ready(function() {
    console.log('DOM ready with jQuery-like syntax');
});

注意事项

  • 该方法不等待样式表、图片或子框架加载,仅保证 DOM 可操作。
  • 如需等待所有资源加载完成,应使用 window.onload 事件。
  • 现代项目建议直接使用 DOMContentLoadeddefer 脚本标签。

标签: jsready
分享给朋友:

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…