0

正規表現を使用して特定の文字列を探し、一致を定義済みのテキストに置き換える単純な Chrome 拡張機能を作成しました。ほとんどの Web サイトでは問題なく機能しますが、たとえば、Lifehacker などではスクリプトが有効になりません (このページhttp://lifehacker.com/5939740/five-best-audio-editing-applications?popular=trueなど) 。 . コードは次のとおりです。

$('p, h1, h2, h3, span, .content, .post-body').each(function(){
        //do something with $(this)
});

Lifehacker のサイトが私のスクリプトに耐性があるのはなぜですか?

4

1 に答える 1

4

スクリプトを次のように変更します。

(function($){
  $('p, h1, h2, h3, span, .content, .post-body').each(function(){
     console.log($(this));
  });
})(jQuery);

彼らのウェブサイト$では、jQuery オブジェクトのエイリアスとして使用されていません。上記のコードは、jQuery オブジェクトをパラメーターとして取り、$. $または、コード内のすべてを に置き換えることもできますjQuery

UPD : また、拡張機能では、jQueryオブジェクトが存在するかページに読み込まれているかどうかを最初に確認し、jQuery代わりに を使用します。これは$$他の JavaScript ライブラリ (mootools など) で使用される可能性があるためです。

于 2012-09-02T21:36:09.733 に答える