如何在单个javascript文件中加载多个js文件,而不使用document.write?

时间:2016-01-06 13:05:10

标签: javascript angularjs

var head = document.getElementsByTagName("head")[0];
function loadjscssfile(filename, filetype) {
    if (filetype == "js") {
        var fileref = document.createElement('script');
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", filename);
        //fileref.async = false;
    }
    else if (filetype == "css") { //if filename is an external CSS file
        var fileref = document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", filename);
        //fileref.async = false;
    }
    if (typeof fileref != "undefined")
        console.log("check file", head.appendChild(fileref));
        fileref.sync = true;
    head.appendChild(fileref);
}

我正在使用上面的功能,但我收到的错误很少,我认为文件没有逐个加载。 我想逐个加载js文件 如何逐个加载多个脚本文件。

loadjscssfile ("js/scripts/jquery.js", "js");    
loadjscssfile ("js/scripts/angular.min.js", "js");   
loadjscssfile ("js/scripts/angular-ui-router.min.js", "js");   
loadjscssfile ("js/scripts/angular-resource.min.js", "js");    
loadjscssfile "js/scripts/angular-route.min.js", "js");       
loadjscssfile ("js/scripts/moment.min.js", "js");    
loadjscssfile("js/scripts/humanize-duration.js", "js");    
loadjscssfile("js/scripts/angular-timer.min.js", "js");     
loadjscssfile("js/scripts/angular-translate.min.js", "js");    
loadjscssfile("js/scripts/angular-translate-loader-url.min.js", "js");   

3 个答案:

答案 0 :(得分:1)

也许您可以查看像GruntGulp这样的任务运行器来自动将JS文件和/或CSS文件注入HTML?

对于Grunt使用fileblocks plugin和gulp,inject plugin

答案 1 :(得分:1)

看看RequireJS。您可以按需加载js文件。

以下是http://requirejs.org/docs/start.html

的示例

答案 2 :(得分:0)

Webpack可以帮到你。它可以从许多人制作一个.js文件 但是要小心 - 使用.min.js文件的混淆会让你遇到很多问题,当你制作一个(或两个)大的.js文件时不要使用它