2011-08-27 4 views
8

ページのレイアウトを巡回するクロムエクステンションを作成しています。私は、これを行うために最新バージョンのjQueryを使用したいと考えています。古いバージョンがすでにページにある場合、クロム拡張コンテンツスクリプトでjqueryを使用するにはどうすればよいですか?

このページには、すでにスクリプトの一部としてjQueryのバージョン1.4.4が含まれています。

jQueryの新しいバージョンを含めると、ページがハングアップします。 jQueryの最新バージョンをコンテンツスクリプトでのみ使用できるようにするにはどうすればいいですか?また、すでにページにあるスクリプトには影響しません。

答えて

6

jqueryをコンテンツスクリプトとして挿入すると、sandboxedになります。親ページが何を使用していても、競合は発生しません。

+0

_」たとえば、コンテンツのスクリプトはjQueryのv1とページを含めることができます含めることができますJQuery v2を使用すると、互いに競合することはありません」。 – Eric

1

異質のjQueryバージョンには、No Conflict modeを使用し、クロージャでコードを実行することで、基本的に異なる名前空間にすることができます。例えば:それは他の場所で再利用できるように、この宣言がグローバルスコープにjq162が利用できるように注意し

<script src="jquery-1.6.2.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    jq162 = jQuery.noConflict(true); 
    (function ($) { 
     $(function() { 
      // Your document ready code here 
     }); 
    })(jq162); 
</script> 

してください。 jQueryのインスタンスをローカルにスコープしたい場合は、varにしてください。

+0

noConflictはまだ 'jQuery'変数を残していますか? – Eric

+0

引数 'true'を' noConflict() 'に渡すことによって、ドキュメントの理解に' $ 'と' jQuery'変数の元のスコープの両方を復元します。 – lsuarez

+0

あなたの質問に対する答えは、私が不明であった場合のために、上のように上記の呼び出しを使用すると「いいえ」です。 xD(カフェインが必要...) – lsuarez

関連する問題