替换字符串的脚本在某些站点上不起作用

时间:2012-09-02 21:29:30

标签: javascript jquery google-chrome-extension

我创建了一个简单的Chrome扩展程序,使用正则表达式搜索某些字符串,并用预定义的文本替换匹配项。它适用于大多数网站,但不知何故,该脚本不会生效,例如,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的网站都能抵制我的剧本?

1 个答案:

答案 0 :(得分:4)

将您的脚本更改为以下内容:

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

在他们的网站上$不用作jQuery对象的别名。上面的代码就像一个自动执行的匿名函数,它将jQuery对象作为参数并将其视为$。或者,您可以将代码中的所有$替换为jQuery

UPD :同样在您的扩展程序中,我会首先检查页面上是否存在jQuery对象,并使用jQuery代替$,因为{ {1}}可能被其他JavaScript库(如mootools)使用。