Javascript 这可以简化为按顺序加载多个脚本吗

Javascript 这可以简化为按顺序加载多个脚本吗,javascript,jquery,Javascript,Jquery,下面的工作,但我需要将它分发给客户,他们可能会不舒服的粘贴所有这些脚本到他们的主页。只是想知道它是否可以简化?我需要加载jQuery1.71,然后加载UI,然后加载我自己的脚本,然后在我自己的脚本中调用函数。甚至它也相当长 希望一些javascript大师能提供帮助。谢谢 var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src =

下面的工作,但我需要将它分发给客户,他们可能会不舒服的粘贴所有这些脚本到他们的主页。只是想知道它是否可以简化?我需要加载jQuery1.71,然后加载UI,然后加载我自己的脚本,然后在我自己的脚本中调用函数。甚至它也相当长

希望一些javascript大师能提供帮助。谢谢

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
head.appendChild(script);
if (script.onreadystatechange) script.onreadystatechange = function () {
    if (script.readyState == "complete" || script.readyState == "loaded") {
        script.onreadystatechange = false;
        //alert("complete");
        load_script();
    }
} else {
    script.onload = function () {
        //alert("complete");
        load_script();
    }
}
//setup array of scripts and an index to keep track of where we are in the process
var scripts = ['script/jquery-ui-1.8.7.custom.min.js', 'script/wfo171.js'],
    index = 0;
//setup a function that loads a single script
function load_script() {
    //make sure the current index is still a part of the array
    if (index < scripts.length) {
        //get the script at the current index
        $.getScript('http://mydomainn.com/script/' + scripts[index], function () {
            //once the script is loaded, increase the index and attempt to load the next script
            //alert('Loaded: ' + scripts[index] + "," + index);
            if (index != 0) {
                LoadEdge();
            }
            index++;
            load_script();
        });
    }
}

function LoadEdge() {
    Edge('f08430fa2a');
}
var head=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.src=https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type='text/javascript';
head.appendChild(脚本);
if(script.onreadystatechange)script.onreadystatechange=函数(){
如果(script.readyState==“完成”| | script.readyState==“加载”){
script.onreadystatechange=false;
//警报(“完成”);
加载脚本();
}
}否则{
script.onload=函数(){
//警报(“完成”);
加载脚本();
}
}
//设置脚本数组和索引,以跟踪我们在流程中的位置
var scripts=['script/jquery-ui-1.8.7.custom.min.js','script/wfo171.js'],
指数=0;
//设置加载单个脚本的函数
函数加载_脚本(){
//确保当前索引仍然是数组的一部分
if(索引
一旦拥有jQuery,您就可以使用它的功能:

$.when.apply($, $.map(scripts, $.getScript)).then(LoadEdge);

这依赖于它的延迟功能-每个URL都被一个
getScript
延迟替换(这将获取脚本),然后这些延迟被传递到
$。当
时,您可以使用
添加回调。然后在所有脚本加载完毕后调用

为什么不;在尝试执行之前,是否只使用onload事件来确保所有内容都已加载

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://mydomainn.com/script/jquery-ui-1.8.7.custom.min.js"></script>
<script src="http://mydomainn.com/script/wfo171.js"></script>
<script>
    $(function() { // this executes when the page is ready
        Edge('f08430fa2a');
    });
</script>

$(function(){//当页面准备就绪时执行此操作
边缘('f08430fa2a');
});

(检查脚本上的路径,您似乎是从
/script/script
加载的,不确定这是否正确,所以我将其删除。

属于:有趣。这是否意味着jquery修改了数组的原型并添加了映射?我以为他们反对修改本机objects@mkoryak:否,
.map
也是本地的。您可以n对于阵列上没有此功能的传统浏览器,也可以使用
$.map
——我将修改我的答案。@pimvdb我将尝试一下,就像简单一样。请稍等。