繁体   English   中英

在JS文件中包含多个javascript文件

[英]Include multiple javascript files in a JS file

所以,如果我必须在.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);

我该怎么办如果我需要包含多个文件。

你可以创建一个函数并传递你想要包含的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');
});

我想你会做同样的事情,但只需将var script的变量名称更改为var scriptA然后更改var scriptA的代码,以匹配script.src = to scriptA.src =

此函数将加载一个或多个脚本,传递单个文件或多个数组:

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"}]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM