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

前端之家收集整理的这篇文章主要介绍了是否可以在同一页面上加载多个不同版本的jQuery?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在创建一个bookmarklet,如果找不到该对象,它将加载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);

})();

我使用这个bookmarklet构建器来创建bookmarklet http://subsimple.com/bookmarklets/jsbuilder.htm

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

最佳答案
我怀疑你已经看到了所有的警告并理解你可以将jQuery移动到另一个命名空间:

//Completely move jQuery to a new namespace in another object.

var dom = {};
dom.query = jQuery.noConflict(true);

并且该插件可能无法工作,您必须在加载或使用其他脚本之前完成所有这些操作.

祝你好运/有点好奇,如果这对你有用〜

猜你在找的jQuery相关文章