老师能否详细说下这段引用
function myReady(fn){
//对于现代浏览器,对DOMContentLoaded事件的处理采用标准的事件绑定方式
if ( document.addEventListener ) {
document.addEventListener("DOMContentLoaded", fn, false);
} else {
IEContentLoaded(fn);
}
//IE模拟DOMContentLoaded
function IEContentLoaded (fn) {
var d = window.document;
var done = false;
//只执行一次用户的回调函数init()
var init = function () {
if (!done) {
done = true;
fn();
}
};
(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();
}
}
}
}
正在回答 回答被采纳积分+1
同学你好, 这个函数是老师提前封装好的一个函数,做了一些兼容性和错误分析处理,主要就是为了兼容IE浏览器, 老师在其中已经做了很详细的功能注释,可以参考一下理解一下。其中有一些性能优化的思想你可能看不懂,不过现在看不懂没关系,后面阶段我们学习jQuery的时候, 会有更简单的方法$(document).ready(function(){//代码})代替这个函数的功能哦
目前阶段, 我们不需要去研究这里面的原理, 简单了解一下即可, 等你的知识达到一定的程度,写过一些代码之后,就会慢慢理解了,然后在回过头来研究会更容易理解哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星