我该如何等待加载文档?

时间:2017-03-02 19:53:57

标签: javascript

  • 原谅我,我是javascript的新手。

我试图找出等待文档加载的最佳方法。

我想做什么:

  1. 打开网址
  2. 等待页面完全加载(脚本,图像等)
  3. 检查页面加载是否为真。
  4. 根据我的理解,我会做这样的事情:

    window.location = "https://somewebsite.com"
    
    function isLoaded() {
      while (document.readyState != "complete") {
      }
      return true;
    }
    
    isLoaded()
    

    问题:

    • 当我在Firefox的控制台中执行此操作时。我确实 - 我相信 - 在文档试图打开页面之前,或者如果我在屏幕上不再显示当前页面后尝试从控制台运行它,我会收到“忙脚本”警告。
    • 也许我做错了,也许有更好的方法来测试,我不确定。
    • 背景很少。我正在尝试为Firefox编写Add On,因此我的脚本将在页面上运行而不是页面的一部分。如果这有帮助。

1 个答案:

答案 0 :(得分:0)

三个选项:

  1. 如果脚本是正文的最后一个标记,那么DOM将在脚本标记执行之前就绪,
  2. 当DOM准备就绪时," readyState"将改为"完成"
  3. 将所有内容置于' DOMContentLoaded'事件监听器。
  4. <强>的onreadystatechange

      document.onreadystatechange = function () {
         if (document.readyState == "complete") {
         // document is ready. Do your stuff here
       }
     }
    

    <强> DOMContentLoaded

    document.addEventListener('DOMContentLoaded', function() {
       console.log('document is ready. I can sleep now');
    });