无论如何都要在单个JS文件中加载其他JS文件。我想指出我的单个页面“ITS”js文件,并且js文件将加载jquery,其他js文件。
我知道我可以将所有这些弹出到html即
我在考虑分离问题,所以我想知道是否有任何事情已经存在而没有我重新发明轮子....
我只需要编辑home.js来改变为home.htm加载的其他js(jquery等)... home.htm只会指向home.js
由于
答案 0 :(得分:15)
您可以查看dynamic script loading。以下是文章的摘录:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'helper.js';
head.appendChild(script);
答案 1 :(得分:3)
对于外部域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(); });
答案 2 :(得分:2)
这类似于Darin的解决方案,除了它没有任何变量。
document.getElementsByTagName('head')[0].appendChild(document.createElement("script")).src = "helper.js";
答案 3 :(得分:2)
我建议你看看labJS。它是专门为加载Javascript而创建的库。正如他们所说的那样......“LABjs的核心目标是成为一个通用的,按需的JavaScript加载器,能够随时从任何位置加载任何JavaScript资源到任何页面。”
有关详细信息,请参阅the labJS home page。
答案 4 :(得分:1)
Google提供jQuery等主要javascript库的集中托管版本。它们可以使用谷歌加载器动态加载。