关注开源代码的实际应用
onDomReady比onLoad要更好,在Ext,mootools的框架里都有类似的实现。但有时我们并不需要这两个js框架,不能因为一个onDomReady就引入其他js,太浪费了。这里提供一个独立实现的onDomReady代码,在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>