动态加载JS脚本的4种方法

作者:ajax
网址:


1、直接document.write

  1. <SCRIPT language=javascript>   
  2.     document.write("<script src='test.js'><\/script>");   
  3. </SCRIPT>   

2、动态改变已有script的src属性

  1. <SCRIPT id=s1 src=""></SCRIPT>   
  2.   
  3. <SCRIPT language=javascript>   
  4.     s1.src="test.js"  
  5. </SCRIPT>   
3、动态创建script元素
  1. <SCRIPT type=text/javascript>   
  2.     var oHead = document.getElementsByTagName('HEAD').item(0);   
  3.     var oScript= document.createElement("script");   
  4.     oScript.type = "text/javascript";   
  5.     oScript.src="test.js";   
  6.     oHead.appendChild( oScript);   
  7. </SCRIPT>   

4、用XMLHTTP取得要脚本的内容,再创建 Script 对象

  1. function GetHttpRequest() {   
  2.     if (window.XMLHttpRequest) // Gecko   
  3.         return new XMLHttpRequest();   
  4.     else if (window.ActiveXObject) // IE   
  5.         return new ActiveXObject("MsXml2.XmlHttp");   
  6. }   
  7.   
  8.   
  9. function AjaxPage(sId, url) {   
  10.   
  11.     var oXmlHttp = GetHttpRequest() ;   
  12.   
  13.     oXmlHttp.onreadystatechange = function() {   
  14.         if (oXmlHttp.readyState == 4) {   
  15.             if (oXmlHttp.status == 200 || oXmlHttp.status == 304) {   
  16.                 IncludeJS(sId, url, oXmlHttp.responseText);   
  17.             } else {   
  18.                 alert('XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')');   
  19.             }   
  20.         }   
  21.     }   
  22.   
  23.     oXmlHttp.open('GET', url, true);   
  24.     oXmlHttp.send(null);   
  25. }   
  26.   
  27.   
  28. function IncludeJS(sId, fileUrl, source) {   
  29.   
  30.     if (( source != null ) && ( !document.getElementById(sId) )) {   
  31.         var oHead = document.getElementsByTagName('HEAD').item(0);   
  32.         var oScript = document.createElement("script");   
  33.         oScript.language = "javascript";   
  34.         oScript.type = "text/javascript";   
  35.         oScript.id = sId;   
  36.         oScript.defer = true;   
  37.         oScript.text = source;   
  38.   
  39.         oHead.appendChild(oScript);   
  40.   
  41.     }   
  42. }   
  43.   
  44. AjaxPage("scrA""b.js");   
  45.   
  46. alert("主页面动态加载a.js并取其中的变量:" + str);  
  • ---> 收藏到书签 
 | 这篇【动态加载JS脚本的4种方法】来自 doc.ajaxeye.com |



本文相关评论|Comments

发表该文评论|Send Comment



关于本文|About The Blog

这篇 Blog 于 2008-04-16 21:36:00 发布在 Ajax Docs
上一篇: 超简单实现:Ext.TabPanel加入iframe
下一篇: 优质网页小贴士 - 在你的文档中使用 link
首页

相关文章|Related Articles



相关标签|Related Tags