当文档加载完成后执行代码

在文档“准备就绪”之前,无法安全地操纵页面。这是确保代码不会过早运行的方法


此方法等效于jQuery的$(document).ready()方法:


document.addEventListener('DOMContentLoaded', function(){
  // do something
});
      

但是,与jQuery相比,此代码只能在现代浏览器(IE> 8)中正常运行,并且在插入该脚本时(例如通过Ajax)文档已经渲染的情况下,它将无法正常运行。 因此,我们需要对此进行一些扩展:


function run() {
  // do something
}

// in case the document is already rendered
if (document.readyState!='loading') run();
// modern browsers
else if (document.addEventListener) document.addEventListener('DOMContentLoaded', run);
// IE <= 8
else document.attachEvent('onreadystatechange', function(){
  if (document.readyState=='complete') run();
});