0

我创建了一个简单的 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 的网站对我的脚本有抵抗力?

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 回答