如何從另一個JavaScript文件(如CSS)加載一個JavaScript文件? 在CSS中,我們使用寫@import url("mycss.css");
。如何從另一個加載一個JavaScript文件?
有什麼辦法可以在JavaScript中做到這一點?
如何從另一個JavaScript文件(如CSS)加載一個JavaScript文件? 在CSS中,我們使用寫@import url("mycss.css");
。如何從另一個加載一個JavaScript文件?
有什麼辦法可以在JavaScript中做到這一點?
是的。如果您希望使用純JavaScript,則必須動態創建script
標籤,然後將其附加到文檔中。
是的。如果您使用jQuery庫,則可以使用$.getScript
方法。
$.getScript("another_script.js");
有在Javascript中沒有@進口十歲上下的功能/方法,但你完全可以追加一個腳本來<head>
標籤,像這樣:
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = '/path/to/js/file';
document.getElementsByTagName('head')[0].appendChild(newScript);
或者像埃德加我之前正確提到可以使用jQuery的。
這是否加載文件並啓動所有寫在其上的內容? – 2016-01-25 20:26:14
,因爲我期待着寫這段代碼來加載jQuery – 2016-01-25 20:26:42
@RajaAnbazhagan是的,它會啓動文件的內容,我已經用它來加載jQuery,所以我知道這是有效的。 – musicinmyhead 2016-01-26 20:14:51
除了eval
字符串以外,Javascript本身不提供任何模塊化幫助。但是,這是一個普遍的需求,大多數大型JavaScript框架都提出了自己的解決方案,最近在requirejs項目中努力標準化這些API。如果您使用的是像Dojo或jQuery這樣的框架,您可能最好學習使用他們的設施,但如果不使用,requirejs
是一款輕量級獨立工具。你基本上只需添加
<script data-main="scripts/main" src="scripts/require.js"></script>
您<head>
部分,然後把自己的javascript裏面一些像這樣的包裝代碼(從require.js
網站被盜):
require(["helper/util"], function() {
//This function is called when scripts/helper/util.js is loaded.
require.ready(function() {
//This function is called when the page is loaded
//(the DOMContentLoaded event) and when all required
//scripts are loaded.
});
});
只是因爲沒有人提到它還有另一種選擇,它不需要任何花哨的庫或者編碼,document.write
。原則上,它是這樣的,但看到下面的一個警告:
document.write('<script src="myscript.js" type="text/javascript"></script>');
這將在完全解析腳本標記來執行,如果你把你的腳本標籤的頭部,新的腳本標籤會也在腦海中,正在執行之後。保重直接執行它,而當文件被加載(如在$(function(){})
回調比這是我用:
(function(){
function load(script) {
document.write('<'+'script src="'+script+'" type="text/javascript"><' + '/script>');
}
load("script1.js");
load("script2.js");
load("etc.js");
})();
的封閉功能只是爲了不污染全局命名空間
警告(以及爲什麼上面打破的「腳本」)是腳本標記中可能沒有結尾腳本標記,HTML分析程序不知道它是腳本的一部分。關於該主題有一個other question。
[在另一個JavaScript文件中包含JavaScript文件?](http://stackoverflow.com/questions/950087/ include-a-javascript-file-in-another-javascript-file) – Vadzim 2016-04-26 12:04:48