支持绑定多个函数的onDomReady事件

onDomReady比on load要更好,在Ext,mootools的框架里都有类似的实现。但有时我们并不需要这两个js框架,不能因为一个onDomReady就引入其他js,太浪费了。所以自己写了一个。
在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>

你可能感兴趣的:(JavaScript,框架,ext,mootools)