同じページで複数のバージョンの jQuery を使用できますか? 質問する

同じページで複数のバージョンの jQuery を使用できますか? 質問する

私が取り組んでいるプロジェクトでは、顧客の Web ページで jQuery を使用する必要があります。顧客は、私たちが提供するコード チャンクを挿入します。このコードには、作成された<script>でウィジェットを構築するいくつかの要素が含まれています。顧客がまだ最新バージョンの jQuery を使用していない場合は、 Google がホストするバージョンの jQuery の も(おそらく) 含まれることになります。<script><iframe><script>

問題は、一部の顧客がすでに古いバージョンの jQuery をインストールしている可能性があることです。 少なくともかなり新しいバージョンであれば、これは機能するかもしれませんが、私たちのコードは jQuery ライブラリに最近導入された機能に依存しているため、顧客の jQuery バージョンが古すぎるケースが必ず発生します。 最新バージョンの jQuery へのアップグレードを要求することはできません。

顧客のページのコードに干渉したり影響を与えたりすることなく、コードのコンテキスト内でのみ使用する新しいバージョンの jQuery をロードする方法はありますか? 理想的には、jQuery の存在を確認し、バージョンを検出し、古すぎる場合は、何らかの方法で最新バージョンをロードしてコードに使用できるようにすればよいでしょう。

<iframe>顧客のドメインのに jQuery をロードし、そこに も含めるというアイデアがありましたが<script>、これは実現可能と思われますが、もっとエレガントな方法があることを期待しています (余分な によるパフォーマンスと複雑さのペナルティがないことは言うまでもありません<iframe>)。

ベストアンサー1

はい、jQuery の noconflict モードにより可能です。http://blog.nemikor.com/2009/10/03/using-multiple-versions-of-jquery/

<!-- load jQuery 1.1.3 -->
<script type="text/javascript" src="http://example.com/jquery-1.1.3.js"></script>
<script type="text/javascript">
var jQuery_1_1_3 = $.noConflict(true);
</script>

<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>

そうすると、 の代わりにまたは を$('#selector').function();実行します。jQuery_1_3_2('#selector').function();jQuery_1_1_3('#selector').function();

おすすめ記事