0

main.jsファイルの場合:contentScriptFileをscript.jsに構成しました。また、このスクリプトファイルは、tabs.openを使用して開くタブであるindex.htmlに埋め込まれています。

そのスクリプトファイルには、self.port.onとjqueryに関連するものがあります。self.portが他のjqueryのものの上に記述されている場合、self.port.onは機能しており、jqueryは機能していません。ただし、self.port.onは以下のように記述されており、jqueryは正常に機能しており、self.portは機能していません。

スクリプトファイルは、実際にはself.portを使用して取得したデータを処理します(タブを開いたときにのみ表示されます)。

4

3 に答える 3

1

すべての jQuery コードを安全な環境でラップするのはどうですか?

$ の使用:

(function($) {
    // use $
})(jQuery)

$jq の使用:

(function($jq) {
    // use $jq
})(jQuery)
于 2012-12-27T14:53:11.013 に答える
0

jQueryのnoConflict設定を使用します。

$jq = jQuery.noConflict(); //use $jq instead of $
于 2012-12-27T14:08:35.400 に答える
0

多くの JavaScript ライブラリは$、jQuery と同様に、関数名または変数名として使用します。jQuery の場合、$は単なるエイリアスであるためjQuery、すべての機能は $ を使用しなくても利用できます。jQuery と一緒に別の JavaScript ライブラリを使用する必要がある場合は、次の呼び出しで $ の制御を他のライブラリに戻すことができます$.noConflict()

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

この手法は、.ready() メソッドが jQuery オブジェクトをエイリアスする機能と組み合わせると特に効果的です。.ready() に渡されるコールバック内で、後で競合することを恐れずに $ を使用できるためです。

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
    $("div").hide();
  });
  // Code that uses other library's $ can follow here.
  $("content").style.display = 'none';
</script>

ソース: jQuery.noConflict

于 2012-12-27T14:24:52.517 に答える