onDomReady比on load要更好,在Ext,mootools的框架里都有类似的实现。但有时我们并不需要这两个js框架,不能因为一个onDomReady就引入其他js,太浪费了。所以自己写了一个。
在IE6,firefox2上测试通过。
在IE6,firefox2上测试通过。
<script>
(function(){//闭包,保护全局变量
var fns=[];
/**
* onDomReady
*/
window.onDomReady = function(fn) {
fns.push(fn);
}
function runFns(){
for(var i=0;i<fns.length;i++){
fns[i]();
}
}
//W3C
if(document.addEventListener){
document.addEventListener("DOMContentLoaded", runFns, false);
}
else { //IE
document.onreadystatechange = function(){
if(document.readyState == "interactive")
{
runFns();
}
}
}
})();
window.onDomReady(function(){
alert('init 1');
});
window.onDomReady(function(){
alert('init 2');
});
window.onDomReady(function(){
alert('init 3');
});
</script>