我需要找出窗口是否已加载。

我想创建一个checkLoaded函数,该函数将根据调用时间返回truefalse进行指示。

<html>
<head>
  function checkLoaded(){
    //alert true if window is loaded or alert false
  }
</head>
<body onload="checkLoaded()"> <!-- This should alert true -->
   Loding window.
   <script>
       checkLoaded();// this should alert false;
   </script>
</body>
</html>

我不想使用在加载窗口时设置的全局变量。

有什么方法可以检查window对象的状态,也许是属性?

我不想使用jQuery或任何其他外部库。

最佳答案

您可以使用document.readyState属性检查文档是否已加载而不监听任何事件。它将设置为"complete",以检查文档和所有子资源是否已加载。 (这对应于load事件。)

function checkLoaded() {
  return document.readyState === "complete";
}

如果只想检查文档是否已加载,而不必担心子资源,也可以检查该属性是否为"interactive"
function checkLoaded() {
  return document.readyState === "complete" || document.readyState === "interactive";
}

这应该在当前的浏览器中有效,但是在所有浏览器的旧版本中不支持。

10-06 04:50