2

我正在尝试获取 DOM 的第一个就绪状态。第二个,第三个等不是我感兴趣的,而是第一个。有什么技巧可以让 DOM 的第一个就绪状态?

$(document).ready(function() {
  // is it the first ready state?
});
4

2 回答 2

3

有 4 个 readyState 可能值:

  • 未初始化 - 尚未开始加载
  • 正在加载 - 正在加载
  • 交互 - 已加载足够,用户可以与之交互
  • 完成 - 满载

要查看它的价值,请使用以下代码:

document.onreadystatechange = function () {
    if (document.readyState === YourChoice) {
        // ...
    }
}

我无法捕捉到uninitializedreadyState。(但我为什么需要它?)

如果您需要一个侦听器来完全加载 DOM,请使用:

document.addEventListener('DOMContentLoaded', YourListener);

或者

document.addEventListener('load', YourListener);

甚至

window.onload = YourListener;

对于jQuery:

$(document).on("DOMContentLoaded", function() { });

或者

$(document).on("load", function() { });

或者

$(window).on("load", function() { });
于 2012-12-13T11:50:59.237 回答
1

啊,你正在使用 jQuery。看看文档:只有一个ready事件!我永远不会开火多次。在内部,这甚至是用Promise处理的,所以它不能多次触发。

于 2012-12-13T11:48:41.683 回答