相关疑难解决方法(0)

同一页面上的两个jQuery版本

是否有可能在同一个文档中有2个不同的jQuery版本,并让它们不相互冲突?

例如,如果我创建一个bookmarklet并希望将代码基于jQuery.这个bookmarklet是在使用另一个版本的jQuery的页面上注入的,然后我的代码将覆盖页面上使用的版本.

有可能避免这种情况吗?或者是否有其他库提供此功能或者我应该重新考虑整个事情.

感谢您的回答和指示,

短发

javascript jquery

12
推荐指数
1
解决办法
5793
查看次数

是否可以在同一页面上加载多个不同版本的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);

})();
Run Code Online (Sandbox Code Playgroud)

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

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

jquery bookmarklet

5
推荐指数
2
解决办法
4518
查看次数

多个jQuery包含在文档中

我有一个使用旧jQuery的文档,我需要新的jQuery用于特定的插件.我的文档结构如下所示:

<html>
<head>
    <script type="text/javascript" src="jQuery.old.js"></script>
</head>
<body>
    <script>
        $("#elem").doSomething(); // use old jQuery
    </script>            
    <!-------- My plugin begins -------->
        <script type="text/javascript" src="jQuery.new.js"></script>
        <script type="text/javascript" src="jQuery.doSomething.js"></script>
        <script>
        $().ready(function(){
            $("#elem").doSomething();   // use new jQuery
        });
        </script>
        <div id="elem"></div>
    <!-------- My plugin ends ---------->
    <script>
        $("#elem").doSomething(); // use old jQuery
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这个问题,但没有发现任何看起来像我的情况(我需要先加载旧的javascript(在头部)和那么新的(在正文中).顺便说一句,在Firefox中看起来像旧的jQuery lib加载和依赖它的脚本有效,但是使用新版本的脚本,在IE和Chrome中,一切都正好相反.

javascript jquery

5
推荐指数
1
解决办法
3748
查看次数

标签 统计

jquery ×3

javascript ×2

bookmarklet ×1