我创建了一个简单的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的网站都能抵制我的剧本?
答案 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)使用。