动态加载JS脚本的4种方法
网址:http://doc.ajaxeye.com/blog/90/
1、直接document.write
- <SCRIPT language=javascript>
- document.write("<script src='test.js'><\/script>");
- </SCRIPT>
2、动态改变已有script的src属性
- <SCRIPT id=s1 src=""></SCRIPT>
- <SCRIPT language=javascript>
- s1.src="test.js"
- </SCRIPT>
- <SCRIPT type=text/javascript>
- var oHead = document.getElementsByTagName('HEAD').item(0);
- var oScript= document.createElement("script");
- oScript.type = "text/javascript";
- oScript.src="test.js";
- oHead.appendChild( oScript);
- </SCRIPT>
4、用XMLHTTP取得要脚本的内容,再创建 Script 对象
- function GetHttpRequest() {
- if (window.XMLHttpRequest) // Gecko
- return new XMLHttpRequest();
- else if (window.ActiveXObject) // IE
- return new ActiveXObject("MsXml2.XmlHttp");
- }
- function AjaxPage(sId, url) {
- var oXmlHttp = GetHttpRequest() ;
- oXmlHttp.onreadystatechange = function() {
- if (oXmlHttp.readyState == 4) {
- if (oXmlHttp.status == 200 || oXmlHttp.status == 304) {
- IncludeJS(sId, url, oXmlHttp.responseText);
- } else {
- alert('XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')');
- }
- }
- }
- oXmlHttp.open('GET', url, true);
- oXmlHttp.send(null);
- }
- function IncludeJS(sId, fileUrl, source) {
- if (( source != null ) && ( !document.getElementById(sId) )) {
- var oHead = document.getElementsByTagName('HEAD').item(0);
- var oScript = document.createElement("script");
- oScript.language = "javascript";
- oScript.type = "text/javascript";
- oScript.id = sId;
- oScript.defer = true;
- oScript.text = source;
- oHead.appendChild(oScript);
- }
- }
- AjaxPage("scrA", "b.js");
- alert("主页面动态加载a.js并取其中的变量:" + str);
本文相关评论|Comments