因为网络问题,页面加载的速度不一致,导致一些js出错。
所以我们经常需要在页面都加载完成后再执行相应的js操作,那样才会避免很多麻烦和意外。
使用方法:
EF.onReady(functionName);
例:
EF.onReady(function a(){alert(document.getElementById);});
EF.onReady(function b(){alert(document.lastChild);});
<script type=”text/javascript”>
var EF = {
isGecko: function()
{
return navigator.userAgent.indexOf(”Gecko”) == -1 ? false :true;
},
isOpera: function()
{
return navigator.userAgent.indexOf(”Opera”) == -1 ? false :true;
},
isIE: function()
{
return document.all ? true : false;
},
onReady: function(newFunction)
{
if(newFunction == undefined)
return false;
this.domReady = false;
if(functions == undefined)
var functions = [];
functions.push(newFunction);
var initial = function()
{
for(var i in functions)
{
functions[i]();
}
}
this.ready = function()
{
if(this.domReady)
initial();
if (EF.isGecko() || EF.isOpera()) {
try {
document.removeEventListener(’DOMContentLoaded’, initial);
}catch(e){}
document.addEventListener(’DOMContentLoaded’, initial, false);
this.domReady = true;
}
else if (EF.isIE()) {
var timer = window.setInterval(function()
{
try {
document.body.doScroll(”left”);
initial();
window.clearInterval(timer);
this.domReady = true;
}
catch (e) {}
}
, 5);
}
}
this.ready();
}
}
EF.onReady(function a(){alert(document.getElementById);});
EF.onReady(function b(){alert(document.lastChild);});
</script>
来源:http://bbs.blueidea.com/thread-2886882-1-1.html

果然是内裤穿在里面的超人
[我想说]