2011-03-08 189 views
0

HI外部JS文件,包括一個js文件

我有一個JavaScript庫之上有a.js,b.js,c.js文件....我的邏輯是d.js ...我如何參考d.js中的a.js,b.js,c.js文件?

是否可以參考?

我嘗試使用

document.write('<script type="text/javascript" src="a.js"></script>');

<script type="text/javascript" src="a.js"></script>

我得到的錯誤,告訴沒有定義的變量和函數(它們在外部JavaScript文件)沒有定義

謝謝:)

+2

沒有足夠的信息。並請寫出正常的英語。這不是一項短信服務。 'document.write'應該可以工作,但是你必須轉義結束標籤:'<\/script>' – mplungjan 2011-03-08 09:17:23

回答

1

是的,它有可能通過使用DOM將js文件添加到文檔頭部來完成。

var headID = document.getElementsByTagName("head")[0]; 
    var newScript = document.createElement('script'); 
    newScript.type = 'text/javascript'; 
    newScript.language="Javascript"; 
    newScript.charset="ISO-8859-1"; 
    newScript.src = 'yourfile.js'; 

headID.appendChild(newScript);

當然,您必須告訴您當前的JS文件,您添加的文件已經加載。我這樣做是通過在當前JS文件中聲明一個JS函數,然後在已經動態加載的JS文件的末尾調用它。

+0

問題是,你應該停止d.js中的代碼執行,直到加載了a.js,b.js和c.js。 – Bart 2011-03-08 09:26:00

+0

我已經用一種方式更新了答案,告訴腳本新的腳本已經加載 – Vinnyq12 2011-03-08 09:27:40

+0

爲什麼不使用已經在不同瀏覽器上測試過的腳本加載器,並且具有您描述的那些功能。 – 2011-03-08 09:29:07

0

我會建議合併所有需要的文件到一個lib.js文件。另外,以不引起問題,未定義的變量,這也減少了從4

的HTTP請求到1嘗試使用closure compiler你的代碼合併到一個單一的文件。