/**
* Created by Administrator on 2015/11/24.
*/
var myReady = function(fn){
//对于现代浏览器,对DOMContentLoaded事件的处理是采用标准的事件绑定方式
if(document.addEventListener){//通过能力检测区分
document.addEventListener("DOMContentLoaded", fn(), false);
}else{
IEContentLoaded(fn);
}
//IE下模拟定义DOMContentLoaded
function IEContentLoaded(fn){
var d = window.document; //将dom缓存在一个变量里
var done = false;
//只执行一次的回调函数 init()
var init = function(){
if(!done){
dan = true;
fn();
}
};
(function(){//立即调用表达式
try{
//DOM树还未创建完之前会抛出错误
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、我并没有看到你在哪儿定义了一个变量叫做,蛋
dan
var init = function(){
if(!done){
dan = true; // 这个蛋是从哪儿来的 ???
fn();
}
};
2、 document.addEventListener("DOMContentLoaded", fn(), false);
应该写成
document.addEventListener("DOMContentLoaded", fn, false);
找到问题了,谢谢