有没有办法从一个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主页。
(function() {...})();
中。 - eyelidlessness