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