2013-09-27 83 views
-2

我想用一個JavaScript文件負載多個JavaScript文件使用一個JavaScript文件

我四個的JavaScript

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>   
<script type="text/javascript" src="http://ec2-174-129-44-226.compute-1.amazonaws.com/apiTools/jquery.livequery.js"></script>   
<script src="http://localhost/effbugs/apiTools/tools.js?apikey=fztxljpnxqtssgtiquwr&pid=1"></script> 

我想G642.44各級上述四個的JavaScript在一個JavaScript文件加載多個JavaScript文件我會加載一個,而不是四個,我將努力妥善

請給我建議,對於

請幫我

感謝...

+0

您正在使用什麼後端框架? Rails有一個資產管道,完全符合你的要求。 – whitehat101

+0

使用[grunt](http://gruntjs.com/)和[grunt-contrib-concat](https://github.com/gruntjs/grunt-contrib-concat)? –

回答

0

可以這樣做的,包括所有的JS文件,但在加載我猜他們異步加載,他們可能沒有維持秩序的順序。

var scriptElement = document.createElement('script'); 
scriptElement.src = 'http://code.jquery.com/jquery-1.10.1.min.js'; 
document.getElementsByTagName("head")[0].appendChild(scriptElement); 
2

嗯,有幾個選項:

1.它們合併成一個文件

這裏是你如何與cat做到這一點:

cat jsfile1.js jsfile2.js jsfile3.js ... > combined.js 

2.通過require.js加載它們

更多信息在requirejs.org

3.每個URL創建一個腳本元素,並將其附加到DOM

/** 
* loader.js 
*/ 

window.addEventListener('load', function() { 
    var head = document.getElementsByTagName('head')[0], 
     urls = ["http://code.jquery.com/jquery-1.10.1.min.js", 
      "http://code.jquery.com/jquery-migrate-1.2.1.min.js", 
      "http://ec2-174-129-44-226.compute-1.amazonaws.com/apiTools/jquery.livequery.js", 
      "http://localhost/effbugs/apiTools/tools.js?apikey=fztxljpnxqtssgtiquwr&pid=1"]; 

    urls.forEach(function (url) { 
     var script = document.createElement('script'); 
     script.type = 'text/javascript'; 
     script.src = url; 
     head.appendChild(script); 
    }); 
}); 
+0

我認爲OP正在尋找類似於「將它們的文件合併到一個文件中」的內容。 – whitehat101

+0

好吧,足夠公平,但我不明白的是,您使用'getElementsByTagName('head');'爲跨瀏覽器支持,但你使用'Array.forEach'?只是想知道... – iConnor

+0

@Connor我可以使用'document.head'來代替。順便說一句,我沒有考慮到跨瀏覽器的支持。這只是有效的ES5。 – fardjad

0

它很簡單,你只要複製所有4個文件的內容,並把它們放入1個文件中以這樣的。

Master.js:

// Content of jquery-1.10.1.min.js 
// Content of jquery-migrate-1.2.1.min.js 
// Content of jquery.livequery.js 
// Content of tools.js 

或者

Master.js:

var script = document.createElement('script'); 
script.src = 'jquery-1.10.1.min.js'; 
document.head.appendChild(script); 

// Do this for each file