通过另一个js文件动态加载js文件?
无论如何,从单个JS文件中加载其他JS文件。 我想指出我的单个页面“ITS”js文件,并且js文件将加载jquery,其他js文件。
我知道我可以把所有这些都放到html中
我正在考虑关注点的分离,所以我想知道是否有任何事情已经存在而没有我重新发明轮子….
我只需要编辑home.js来改变为home.htm加载的其他js(jquery等)… home.htm只会指向home.js
谢谢
您可以查看动态脚本加载 。 这是文章的摘录:
var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'helper.js'; head.appendChild(script);
对于外部域JS链接
var loadJs = function(jsPath) { var s = document.createElement('script'); s.setAttribute('type', 'text/javascript'); s.setAttribute('src', jsPath); document.getElementsByTagName('head')[0].appendChild(s); }; loadJs('http://other.com/other.js');
对于同一域JS链接(使用jQuery)
var getScript = function(jsPath, callback) { $.ajax({ dataType:'script', async:false, cache:true, url:jsPath, success:function(response) { if (callback && typeof callback == 'function') callback(); } }); }; getScript('js/other.js', function() { functionFromOther(); });
这类似于Darin的解决方案,除了它没有任何变量。
document.getElementsByTagName('head')[0].appendChild(document.createElement("script")).src = "helper.js";
我建议你看看labJS。 它是专门为加载Javascript而创建的库。 正如他们所说的那样……“LABjs的核心目标是成为一个通用的按需JavaScript加载器,能够随时从任何位置加载任何JavaScript资源到任何页面。”
有关更多信息,请参见labJS主页 。
Google提供jQuery等主要javascript库的集中托管版本。 它们可以使用谷歌加载器动态加载。