function addDomLoad(fn){ var timer = null; //定义一个存放定时器的容器 var isReady = false; //定义一个索引 function doReady(){ if(timer) clearInterval(timer); //如果存在定时器那么删除 if(isReady) return; //如果索引为true(已经执行过一遍函数)则直接return 返回出去 isReady = true; //定义索引为true表示已经执行过该函数 fn(); } if(document.addEventListener){ //如果是现代浏览器 addEvent(document,'DOMContentLoaded',function(){ //有自己的方法直接执行fn函数 fn(); removeEvent(document,'DOMContentLoaded',arguments.callee); //清楚该事件arguments.callee表示当前的函数 }) }else{ timer = setInterval(function(){ try{ document.documentElement.doScroll('left'); //如果这里的条件为正确执行下面的程序 doReady(); }catch(e){} },1) } } addDomLoad(function(){ alert(document.getElementById('box')); //调用方法 })