<li>function JsLoader(){</li>
<li>this.load=function(url){</li>
- //获取所有的<script>标记
- var ss=document.getElementsByTagName(“script”);
- //判断指定的文件是否已经包含,如果已包含则触发onsuccess事件并返回
<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>
- //创建script结点,并将其属性设为外联JavaScript文件
<li> s=document.createElement("script");</li>
<li> s.type="text/javascript";</li>
<li> s.src=url;</li>
- //获取head结点,并将<script>插入到其中
<li> var head=document.getElementsByTagName("head")[0];</li>
<li> head.appendChild(s);</li>
<li></li>
- //获取自身的引用
- var self=this;
- //对于IE浏览器,使用readystatechange事件判断是否载入成功
- //对于其他浏览器,使用onload事件判断载入是否成功
<li> //s.onload=s.onreadystatechange=function(){</li>
<li> s.onload=s.onreadystatechange=function(){</li>
- //在此函数中this指针指的是s结点对象,而不是JsLoader实例,
- //所以必须用self来调用onsuccess事件,下同。
<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>
- /**使用方法
- * var jsLoader=new JsLoader();
- *sLoader.onsuccess=function(){}成功时执行的方法
- *jsLoader.onfailure=function(){}失败时执行的方法
- * jsLoader.load(“hello.js”);
- **/