javascript – document.createElement(‘script’)…添加两个带有一个回调的脚本
作者:互联网
我需要添加原型然后添加scriptaculous并在完成加载时获得回调.我目前正在加载原型:
var script = document.createElement("script");
script.src = "http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js";
script.onload = script.onreadystatechange = callback;
document.body.appendChild( script );
我可以通过链接回调来做到这一点,但这似乎是不好的做法(当我需要加载更多脚本时,我不想要一个愚蠢的20个回调方法链).想法?
解决方法:
我建议你使用一些小型装载机,它会链接并为你做一些东西.比如这个:
function loadScripts(array,callback){
var loader = function(src,handler){
var script = document.createElement("script");
script.src = src;
script.onload = script.onreadystatechange = function(){
script.onreadystatechange = script.onload = null;
handler();
}
var head = document.getElementsByTagName("head")[0];
(head || document.body).appendChild( script );
};
(function run(){
if(array.length!=0){
loader(array.shift(), run);
}else{
callback && callback();
}
})();
}
此脚本应该可以帮助您构建脚本标记并在加载所有文件时调用回调.调用非常简单:
loadScripts([
"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js",
"http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"
],function(){
alert('All things are loaded');
});
希望这会有所帮助
标签:scriptaculous,javascript,dom,prototypejs 来源: https://codeday.me/bug/20190919/1813052.html