動態加載script文件的兩種方法

第一種就是利用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);
相關文章
相關標籤/搜索