Javascript 如果使用其他脚本';装货顺序未知?
我希望在我不控制的页面(电子商务平台)中异步包含特定版本的jQuery,并且只在脚本中使用它。页面可能会加载其他脚本,这些脚本也可能希望执行相同的操作,我不知道页面包含我的脚本与其他脚本的顺序 使用Javascript 如果使用其他脚本';装货顺序未知?,javascript,jquery,ajax,concurrency,callback,Javascript,Jquery,Ajax,Concurrency,Callback,我希望在我不控制的页面(电子商务平台)中异步包含特定版本的jQuery,并且只在脚本中使用它。页面可能会加载其他脚本,这些脚本也可能希望执行相同的操作,我不知道页面包含我的脚本与其他脚本的顺序 使用jQuery.noConflict([removeAll]),我可以确保: 我的脚本获得了正确的jQuery版本 我不会为其他人覆盖jQuery版本吗 我认为这个问题不同于大多数其他多jQuery版本的问题,因为人们对脚本包含顺序进行假设,而不使用异步jQuery加载和回调 谢谢 以下是我的尝试(有人
jQuery.noConflict([removeAll])
,我可以确保:
(function() {
var myJQuery;
function loadjQuery(url, callback) {
var runCallbackOnSuccess = function() {
if (typeof jQuery != "undefined") {
myJQuery = jQuery.noConflict(true); // NOTICE THIS LINE
callback();
}
};
var scriptTag = document.createElement("script");
scriptTag.setAttribute("src", url);
scriptTag.onload = runCallbackOnSuccess;
document.getElementsByTagName("head")[0].appendChild(scriptTag);
}
function doSomethingInMyScript() {
myJQuery(document).ready(....);
}
loadjQuery("https://code.jquery.com/jquery-A.B.C.min.js", doSomethingInMyScript);
})();
otherscript.js(我无法控制,但假设是这样)
(函数(){
函数loadjQuery(url,回调){
}
函数doSomethingInOtherScript(){
jQuery(document).ready(…);
}
loadjQuery(“https://code.jquery.com/jquery-X.Y.Z.min.js“,doSomethingInOtherScript);
})();
无论以下情况如何,此代码是否有效:
我认为只要在每个jQuery加载后立即执行回调函数就可以了,而另一个脚本中的代码不可能在jQuery加载和回调执行之间交错代码>?谢谢,添加了括号。我以前试过一次,并被告知将我的想法作为答案发布。:)
(function() {
function loadjQuery(url, callback) {
<same as above, but without the noConflict() call>
}
function doSomethingInOtherScript() {
jQuery(document).ready(....);
}
loadjQuery("https://code.jquery.com/jquery-X.Y.Z.min.js", doSomethingInOtherScript);
})();