gpt4 book ai didi

javascript - document.createElement ('script' )... 用一个回调添加两个脚本

转载 作者:可可西里 更新时间:2023-11-01 02:28:39 26 4
gpt4 key购买 nike

我需要添加原型(prototype),然后添加 scriptaculous,并在它们都完成加载时获得回调。我目前正在像这样加载原型(prototype):

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');
});

希望对你有帮助

关于javascript - document.createElement ('script' )... 用一个回调添加两个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1866717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com