javascript
2017-04-19 88 views 1 likes 
1

因此,如果我必須在.js文件中包含Javascript文件,我將使用下面的腳本。它工作正常。在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); 

我該怎麼辦如果我需要包含多個文件。

+3

你會做同樣的事情。但是最好將它包含在引用原始JS文件的JS文件的HTML中。 –

+1

創建可重用的函數? –

+0

退後一步,瞭解顯示的每行代碼實際上在做什麼。 – nnnnnn

回答

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

太好了。這是我能做的更好的實施。謝謝。 – Abhilash

+0

@Abhilash更新了更好的控制答案。 –

0

我會想象你會做同樣的,你已經到了那裏,但只是從var script改變變量名類似var scriptA和更改下面代碼以匹配像script.src =scriptA.src =

+0

是的。這就說得通了。謝謝。 – Abhilash

+0

您可以爲多個腳本重複使用相同的變量。 – nnnnnn

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"}]); 
相關問題