以下为动态加载JS的代码,方法loadScript接受2个参数 Ext.namespace("ns.yours"); var ns = ns.yours; /** * 动态加载JS * @param scripts 要加载的JS文件数据 * @param calback 加载完成后要执行的方法 * */ function loadScript(scripts,callback){ if(!ns.js){ ns.js = []; }else{ /**清除上次加载的JS*/ for(var i=0;i<ns.js.length;i++){ document.body.removeChild(ns.js[i]); } ns.js = []; } for(var i=0;i<scripts.length;i++){ var script = document.createElement('SCRIPT'); script.src = scripts[i]; if(callback&&i==scripts.length-1){ if(script.addEventListener){ script.addEventListener("load", callback, false); }else if(script.attachEvent){//IE的Script标签不支持onload script.attachEvent("onreadystatechange",function() { loadScript.callbackIE(callback)}); } } ns.js[i] = script; document.body.appendChild(ns.js[i]); } } loadScript.callbackIE = function(callback) { var target = window.event.srcElement; if(target.readyState == "loaded") callback.call(target); } 使用: var remoteScripts = ["http://somedomain.com/test/a.js" ,"http://somedomain.com/test/b.js"] //假设b.js中有一个testAl()方法 loadScript(remoteScripts ,function(){testAl()});