var 聲明一個(gè)匿名函數(shù)init(),為什么會(huì)自己運(yùn)行?把它寫成function init(){} 就正常了
function myReady(fn){
//當(dāng)代標(biāo)準(zhǔn)瀏覽器,DOMContentLoaded使用事件綁定addEventListener
if(document.addEventListener){
document.addEventListener("DOMContentLoaded", fn, false);
}else{
//IE低版本
contentLoaded(fn);
}
//IE 中模擬DOMContentLoaded
function contentLoaded(fn){
var d = window.document;
var done = false;
//只執(zhí)行一次用戶的回調(diào)函數(shù);
? ?function init(){
if(!done){
done = true;
fn();
}
}
//為什么這樣寫,init函數(shù)會(huì)執(zhí)行?
/*var init1 = function(){
if(!done){
done = true;
fn();
}
}*/
(function(){
try{
//dom樹未創(chuàng)建完執(zhí)行doScroll會(huì)拋出錯(cuò)誤;
d.documentElement.doScroll("left");
}catch(e){
//延遲再執(zhí)行一次,直到?jīng)]有錯(cuò)誤為止;
setTimeout(arguments.callee,50);
return;
}
//如果沒有錯(cuò)誤了就立馬執(zhí)行此函數(shù)
init();
})()
//監(jiān)聽document加載情況;
d.onreadystatechange = function(){
//如果用戶是在domready之后綁定的函數(shù),就立馬執(zhí)行;
if(d.readyState == "complete"){
d.onreadystatechange = null;
init();
}
}
}
}
2016-09-23
沒有執(zhí)行啊 ?只是將function賦給init了 ?然后在其他地方調(diào)用啊 ?比如 init();
2016-01-12
2中函數(shù)定義方式都是可以的