1

制御できない非推奨バージョンの JQuery 用のスクリプト src があり (クロスドメインではなく、CMS を介して外部から制御され、変更するためのアクセス権がないだけです)、スクリプト src を新しいバージョンの Jquery に変更したいと考えています。 .

古いコード:

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

と置換する:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
4

3 に答える 3

1

外部スクリプトが読み込まれると、既にメモリに読み込まれているため削除できません。そのため、ソースを変更すると、最初のバージョンを削除せずに別のバージョンの jQuery が読み込まれるだけなので、jQuery の 2 つのバージョンが存在し、競合が発生します。 、多くの場合、何も機能しません。

絶対に必要な場合は、回避策があります。

$(function() {
    $j_142 = $.noConflict(true);
    $j_142.getScript('//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', function() {
        $j_191 = $.noConflict(true);

    });
});

フィドル

これで、2 つのバージョンの jQuery がマップされました。これらを使用するには、次のようにします。

$j_191('#selector')

もちろん、これは既に作成されたコードに問題を引き起こす可能性がありますが、おそらく 2 番目のスクリプトを新しい変数または何かにマッピングするだけで問題を解決できます。

編集:

クロージャーを使用して、これらの値の 1 つをクロージャー内のドル記号にマップすることができます。

(function($) { //anonymous self invoking function

    // now you could use the dollarsign as normal

    $(function() {  // document ready function

    });

})($j_191);
于 2013-07-16T05:06:33.530 に答える
0

使用できます

var oldJquery = document.querySelectorAll('script[src="js/jquery-1.4.2.min.js"]');
oldJquery.src = "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"

これを行うと、ライブDOM要素であるため、自動的にダウンロードされます。すべての変更はすぐに反映される必要があります。

しかし、長期的にはこれは良い考えではないことをお勧めします。Google からの CDN がダウンした場合はどうなりますか。

困っているかもしれません。この変更を行うときは、注意してください。

于 2013-07-16T05:17:13.797 に答える
0

That easy, this is your code:

$("script[src='js/jquery-1.4.2.min.js']").attr('src', '//ajax.googleapis.com/ajax/libs/jquery/1.9.2/jquery.min.js');

This is example http://jsfiddle.net/rebeen/KwLM3/

于 2013-07-16T05:54:07.967 に答える