所以,如果我必须在.js文件中包含一个Javascript文件,我会使用下面的脚本。它工作正常。
var script = document.createElement("SCRIPT");
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
script.onload = function() {
//Some code
};
document.getElementsByTagName("head")[0].appendChild(script);
如果我需要包含1个以上的文件,我该怎么办。
答案 0 :(得分:3)
你可以创建一个函数并传递你想要包含的js文件,如下所示:
function scriptLoader(path, callback)
{
var script = document.createElement('script');
script.type = "text/javascript";
script.async = true;
script.src = path;
script.onload = function(){
if(typeof(callback) == "function")
{
callback();
}
}
try
{
var scriptOne = document.getElementsByTagName('script')[0];
scriptOne.parentNode.insertBefore(script, scriptOne);
}
catch(e)
{
document.getElementsByTagName("head")[0].appendChild(script);
}
}
并称之为:
scriptLoader('/path/to/file.js');
以类似的方式你可以调用你喜欢的JS文件:
scriptLoader('/path/to/file2.js');
scriptLoader('/path/to/file3.js');
甚至使用像这样的onload回调函数:
scriptLoader('/path/to/file6.js',function(){
alert('file6 loaded');
});
答案 1 :(得分:0)
我想你会像你到达那里那样做,但只需将变量名称从var script
更改为var scriptA
,并将后面的代码更改为匹配{{1}转到script.src =
答案 2 :(得分:0)
此函数将加载一个或多个脚本,传递单个文件或多个数组:
function include(src, cb) {
arr = (src instanceof Array) ? src : [{
'src': src,
'cb': cb
}];
arr.forEach(function(item) {
_include(item.src, item.cb);
})
function _include(src, cb) {
var script = document.createElement("SCRIPT");
script.src = src;
script.async = true;
script.type = 'text/javascript';
script.onload = function() {
if (cb) cb()
}
document.getElementsByTagName("head")[0].appendChild(script);
}
}
include("/js/file1.js");
include("/js/file1.js", function(){console.log("file1 loaded")});
include([{src:"/js/file1.js"},{src:"/js/file2.js"},{src:"/js/file3.js"}]);