动态加载js文件,常用两总方法

    	<li>function JsLoader(){</li>
    
    <li>this.load=function(url){</li>
    
  1.          //获取所有的<script>标记
  2.          var ss=document.getElementsByTagName(“script”);
  3.          //判断指定的文件是否已经包含,如果已包含则触发onsuccess事件并返回
  4. 	<li>         for (i=0;i<ss.length;i++){</li>
    
    <li>             if (ss[i].src && ss[i].src.indexOf(url)!=-1){</li>
    
    <li>                 this.onsuccess();</li>
    
    <li>                 return;</li>
    
    <li>             }</li>
    
    <li>         }</li>
    
  5.          //创建script结点,并将其属性设为外联JavaScript文件
  6. 	<li>         s=document.createElement("script");</li>
    
    <li>         s.type="text/javascript";</li>
    
    <li>         s.src=url;</li>
    
  7.          //获取head结点,并将<script>插入到其中
  8. 	<li>         var head=document.getElementsByTagName("head")[0];</li>
    
    <li>         head.appendChild(s);</li>
    
    <li></li>
    
  9.          //获取自身的引用
  10.          var self=this;
  11.          //对于IE浏览器,使用readystatechange事件判断是否载入成功
  12.          //对于其他浏览器,使用onload事件判断载入是否成功
  13. 	<li>         //s.onload=s.onreadystatechange=function(){</li>
    
    <li>         s.onload=s.onreadystatechange=function(){</li>
    
  14.              //在此函数中this指针指的是s结点对象,而不是JsLoader实例,
  15.              //所以必须用self来调用onsuccess事件,下同。
  16. 	<li>             if (this.readyState && this.readyState=="loading") return;</li>
    
    <li>             self.onsuccess();</li>
    
    <li>         }</li>
    
    <li>         s.onerror=function(){</li>
    
    <li>             head.removeChild(s);</li>
    
    <li>             self.onfailure();</li>
    
    <li>         }</li>
    
    <li>     }</li>
    
    <li>}</li>
    
    <li></li>
    
  17. /**使用方法
  18.  *  var jsLoader=new JsLoader();
  19.  *sLoader.onsuccess=function(){}成功时执行的方法
  20.  *jsLoader.onfailure=function(){}失败时执行的方法
  21.  * jsLoader.load(“hello.js”);
  22. **/