Dom加载判断,兼容所有浏览器

Dom加载判断,兼容所有浏览器

Dom 加载完毕,兼容所有浏览器

Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。

IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete)

当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。  
Opera 支持 onreadystatechange

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Untitled Document</title>
         <script language="JavaScript" type="text/javascript">
   if(document.attachEvent){
    document.onreadystatechange=function(){ 
                  if(document.readyState == 'loaded'||document.readyState=="complete"||document.readyState=='interactive'){  
                   document.getElementById("imgdivid").style.display="none";
                  Start();
                 }
    };
  }
  else{  
                      document.addEventListener("DOMContentLoaded",Start,false);   //非IE 
  }
  function Start(){
    alert("document.readyState=" + document.readyState + "\nYes,I'm running");
  }//]]>

  </script>
    </head>
    <body>
        <div align="center" id="imgdivid">
            <img src="wait.gif">
        </div>
    </body>
</html>

上面的代码若果不好,你可以封装自己的包里  底下是我写的类

dload2.js

/**
 * @author duping
 * Administrator
 */
 var  duduppp=function(){
   
           function  domReady(){
     var arr=new Array(); 
      if(arguments.length>0){
           for (var i = 0; i < arguments.length; i++) {      
       arr[i]= arguments[i];      
     }
      }
                   if(document.all){
         
          document.onreadystatechange=function(){       
      /*document.readyState=="complete"||document.readyState=='interactive'
       * 这样写会加载2次,先加载interactive 之后再加载complete
       * 如过要求效率的话写成interactive, opera  没有反应,opera 没有interactive 直接到complete
       * 所以 另写了
       */
      if(document.readyState=='loaded'||document.readyState=="complete"){            
      //  alert(arr[0]+"------------IE--------------------");
       Start(arr); 
                         
                           }         
      }
       }
       else{  
       // alert(arr[0]+"------------NO--IE--------------------");      
          document.addEventListener("DOMContentLoaded",Start(arr),false);
      }       
      function Start(arr){     
    for(var i=0;i<arr.length;i++){    
     if(typeof arr[i]=='function'){     
      arr[i]();
     }     
    }             
            }
              
            }
  
      return {domReady:domReady
               }
           }();

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Untitled Document</title>
  <script language="JavaScript" type="text/javascript" src="js/dload2.js"></script>
        <script language="JavaScript" type="text/javascript">
           function test1(){
       var name=document.getElementById("name").value;   
       alert("my  method is  right"+name);
     }
     function test2(){
      alert("生活需要激情!");
     }
            duduppp.domReady(test1,test2);
             
        </script>
    </head>
    <body>
     <input type="text" id="name" value="1234">
    </body>
</html>

转自:http://hi.baidu.com/duduppp/blog/item/a2fb4ad43849c313a18bb795.html

猜你喜欢

转载自xst4002.iteye.com/blog/1570992