加载多个javascript文件 – jquery

我使用下面的代码动态加载js脚本

$.getScript("/../../site/js/test.js").done(function(script, textStatus) { console.log("test.js :: " + textStatus ); }); 

如果我想在同一段代码中加载多个脚本文件而不是编写另一个getScript,我该怎么办 ..示例test2.js,test3,js

好吧,如果您要为每个文件编写.getScript,这是一种干净的方法。 它还允许构建要加载的文件列表。

使用jQuery加载脚本

 var scripts = ['plugin.js', 'test.js']; for(var i = 0; i < scripts.length; i++) { $.getScript(scripts[i], function() { alert('script loaded'); }); } 

我建议使用现有的加载器框架而不是自己编写。 看看RequireJS: http: //requirejs.org/

//多个浏览器兼容和deoesnt加载相同的脚本两次。

 var filesadded = "" function loadJSQueue(array, success) { if (array.length != 0) { if (filesadded.indexOf("[" + array[0] + "]") == -1) { filesadded += "[" + array[0] + "]" //List of files added in the form "[filename1],[filename2],etc" var callbackCalled = false; oHead = document.getElementsByTagName("head")[0] || document.documentElement; var oScript = document.createElement('script'); oScript.type = 'text/javascript'; oScript.src = array[0]; array.shift(); // $(oScript).ready(function () { // // }) // oScript.onload = oScript.onreadystatechange = function () { // if (!this.readyState || this.readyState == 'complete') { // // loadJSQueue(array, success); // } // }; var done = false; // Attach handlers for all browsers oScript.onload = oScript.onreadystatechange = function () { if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) { done = true; // jQuery.handleSuccess(null, xhr, status, data); // jQuery.handleComplete(null, xhr, status, data); // Handle memory leak in IE oScript.onload = oScript.onreadystatechange = null; if (oHead && oScript.parentNode) { oHead.removeChild(oScript); } loadJSQueue(array, success); } }; oHead.insertBefore(oScript, oHead.firstChild); } else { array.shift(); loadJSQueue(array, success); } } else { success(); } } // usage: loadJSQueue(["../../JavaScript/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js", "../../JavaScript/plupload/js/plupload.js", "../../JavaScript/plupload/js/plupload.html4.js", "../../JavaScript/plupload/js/plupload.html5.js" ], function () { //do your after load stuff here }) 

这是加载js文件异步的最佳方法。

 loadScripts(['script1.js','script2.js'], function(){ alert('scripts loaded'); } function loadScripts(scripts, callback){ var scripts = scripts || new Array(); var callback = callback || function(){}; for(var i = 0; i < scripts.length; i++){ (function(i) { $.getScript(scripts[i], function() { if(i + 1 == scripts.length){ callback(); } }); })(i); } }