gpt4 book ai didi

jquery - 是否可以在同一页面上加载多个不同版本的 jQuery?

转载 作者:行者123 更新时间:2023-12-03 22:57:38 25 4
gpt4 key购买 nike

我正在制作一个书签,如果未找到该对象,它将加载 jQuery。加载将检查 jQuery 的版本。代码如下:

(function(){

var myBkl = {
loadScript: function(src) {
if(window.jQuery && window.jQuery.fn.jquery == '1.3.2'){
return;
}
var s = document.createElement('script');
s.setAttribute('src', src);
s.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(s);
},
whenLoaded: function(callback){
if (typeof(window.jQuery) !== 'undefined' && window.jQuery.fn.jquery == '1.3.2') {
callback(window.jQuery);
}
else {
setTimeout((function() {myBkl.whenLoaded(callback); }), 100);
}
},
init: function($){
console.log($.fn.jquery);
}
};
myBkl.loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js');
myBkl.whenLoaded(myBkl.init);

})();

我使用此小书签生成器来创建小书签 http://subsimple.com/bookmarklets/jsbuilder.htm

显然,如果页面已经加载了 jQuery。 1.3.2 脚本的加载将覆盖页面上的 window.jQuery 对象。我只是想知道是否有办法让 1.3.2 加载到另一个自命名变量?使用jQuery.noConflict(true);

最佳答案

是的。我通过这段代码让它工作:

    (function(){

var myBkl = {
jq: null,
loadScript: function(src) {
if(window.jQuery && window.jQuery.fn.jquery == '1.3.2'){
return;
}
var s = document.createElement('script');
s.setAttribute('src', src);
s.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(s);
},
whenLoaded: function(callback){
if (typeof(window.jQuery) !== 'undefined' && window.jQuery.fn.jquery == '1.3.2') {
myBkl.jq = window.jQuery.noConflict(true);
callback(myBkl.jq);
}
else {
setTimeout((function() {myBkl.whenLoaded(callback); }), 100);
}
},
init: function($){
console.log($.fn.jquery);
console.log(window.jQuery.fn.jquery);
}
};
myBkl.loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js');
myBkl.whenLoaded(myBkl.init);

})();

关于jquery - 是否可以在同一页面上加载多个不同版本的 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/613808/

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