2014-11-23 58 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';