2014-11-23 82 views
1

我有加載javascript文件運行時或異步腳本加載JavaScript文件運行時

var s = document.createElement('script'); 
s.type = 'text/javascript'; 
s.src = 'file.js'; 
s.onreadystatechange = function(){ 
    console.log(this.readyState) 
}; 
s.onload = function(){ 
    console.log('onload') 
}; 
body.appendChild(s); 

的問題是,當s.onload被觸發並onload打印在控制檯中的腳本不完全加載和undefined返回

如果setTimeout是腳本後安裝文件,調用函數是爲onload它的工作原理,但不是取得了良好的實踐

一些關於這個話題的研究,發現了onreadystatechange事件。但是這個事件在我的代碼中從來沒有被觸發過?

如何添加腳本完全加載時觸發的事件?

回答

2

訂單很重要。首先添加元素並添加最後一個src:

var s = document.createElement('script'); 
s.type = 'text/javascript'; 

body.appendChild(s); 

s.onreadystatechange = function(){ 
    console.log(this.readyState) 
}; 
s.onload = function(){ 
    console.log('onload') 
}; 

s.src = 'file.js';