2017-03-02 85 views
0
  • 请原谅我我是JavaScript新手。

我想弄清楚等待文档加载的最佳方法。我应该如何等待文档加载?

我所试图做的事:

  1. 打开一个URL
  2. 等待页面完全加载(脚本,图片等)
  3. 检查是否加载页面是真实的。

从我的理解,我会做这样的事情:

window.location = "https://somewebsite.com" 

function isLoaded() { 
    while (document.readyState != "complete") { 
    } 
    return true; 
} 

isLoaded() 

问题:

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

回答

0

三个选项:

  1. 如果脚本是身体的最后一个标签,脚本标签执行
  2. 之前当DOM准备好了,“readyState的”将变为DOM都准备就绪“完成“
  3. 将所有内容放在'DOMContentLoaded'事件监听器下。

的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'); 
}); 
+0

似乎是在我的脑海某种脱节。 ('DOMContentLoaded',function(){ console.log('document ready,I can sleep now'); });我弄不明白。我是否需要告诉浏览器延迟或等待,还是有更好的方法来测试此代码? – TYPKRFT