(function () { try { // DOM树未创建完之前调用doScroll会抛出错误 d.documentElement.doScroll('left'); } catch (e) { //延迟再试一次~ setTimeout(arguments.callee, 50); return; } // 没有错误就表示DOM树创建完毕,然后立马执行用户回调 init(); })(); //监听document的加载状态 d.onreadystatechange = function() { // 如果用户是在domReady之后绑定的函数,就立马执行 if (d.readyState == 'complete') { d.onreadystatechange = null; init(); } } 在没有doScroll之前勉强用onreadystatechange,有了doScroll之后更接近DOMContentLoaded的实现。 问题:只用onreadystatechange实现有什么问题? 只用doScroll不行吗?
可能有这方面原因 个人理解 仅供参考
我觉得init函数只执行一次,两个判断那个先完成,就执行哪一个。执行更保险点
又看了下视频 ,视频中也说了一下
添加一段 图片来自javascript高级程序设计