第一種就是利用ajax方式,把script文件代碼從後臺加載到前臺,而後對加載到的內容經過eval()執行代碼。第二種是,動態建立一個script標籤,設置其src屬性,經過把script標籤插入到頁面head來加載js,至關於在head中寫了一個<script src="..."></script>,只不過這個script標籤是用js動態建立的
好比說是咱們要動態地加載一個callbakc.js,咱們就須要這樣一個script標籤:
javascript
<script type="text/javascript" src="call.js"></script>
以下代碼就是如何經過js來建立這個標籤(而且加到head中):
java
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script'); script.type= 'text/javascript'; script.src= 'call.js'; head.appendChild(script);
當加載完call.js, 咱們就要調用其中的方法。不過在header.appendChild(script)以後咱們不能立刻調用其中的js。由於瀏覽器是異步加載這個js的,咱們不知道他何時加載完。然而咱們能夠經過監聽事件的辦法來判斷helper.js是否加載完成。(假設call.js中有一個callback方法)
ajax
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script'); script.type= 'text/javascript'; script.onreadystatechange= function () { if (this.readyState == 'complete') callback(); } script.onload= function(){ callback(); } script.src= 'helper.js'; head.appendChild(script);