Javascript 替换字符串的脚本不';有些网站不工作
我创建了一个简单的Chrome扩展,它使用regex查找某些字符串,并用预定义文本替换匹配项。它在大多数网站上运行良好,但不知何故,脚本在例如Lifehacker(如本页)上不起作用。 代码是:Javascript 替换字符串的脚本不';有些网站不工作,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我创建了一个简单的Chrome扩展,它使用regex查找某些字符串,并用预定义文本替换匹配项。它在大多数网站上运行良好,但不知何故,脚本在例如Lifehacker(如本页)上不起作用。 代码是: $('p, h1, h2, h3, span, .content, .post-body').each(function(){ //do something with $(this) }); 你知道为什么Lifehacker的网站会抵制我的脚本吗?将你的脚本更改为以下内容: (func
$('p, h1, h2, h3, span, .content, .post-body').each(function(){
//do something with $(this)
});
你知道为什么Lifehacker的网站会抵制我的脚本吗?将你的脚本更改为以下内容:
(function($){
$('p, h1, h2, h3, span, .content, .post-body').each(function(){
console.log($(this));
});
})(jQuery);
在他们的网站上,$
没有用作jQuery对象的别名。上面的代码就像一个自动执行的匿名函数,将其jQuery对象作为参数,并将其视为$
。或者,您可以将代码中的所有$
替换为jQuery
UPD:在您的扩展中,我会首先检查页面上是否存在/加载了
jQuery
对象,并使用jQuery
而不是$
,因为$
可能会被其他JavaScript库(如mootools)使用。将您的脚本更改为:
(function($){
$('p, h1, h2, h3, span, .content, .post-body').each(function(){
console.log($(this));
});
})(jQuery);
在他们的网站上,$
没有用作jQuery对象的别名。上面的代码就像一个自动执行的匿名函数,将其jQuery对象作为参数,并将其视为$
。或者,您可以将代码中的所有$
替换为jQuery
UPD:在您的扩展中,我会首先检查页面上是否存在/加载了
jQuery
对象,并使用jQuery
而不是$
,因为$
可能被其他JavaScript库(如mootools)使用.已经考虑过AJAX/frames的可能性了吗?您是否将jQuery与您的Chrome扩展捆绑在一起?是的,jQuery与扩展捆绑在一起。@RobW,您的意思是什么?@groovy354当动态生成元素时,您不能在开始时选择它们。而且,当页面包含在一个框架内时,您不能选择它们,除非您使用所有框架:true
,或$('iframe').contents().find(…)
。已经考虑过AJAX/frames的可能性了吗?您是否将jQuery与Chrome扩展捆绑在一起?是的,jQuery与扩展捆绑在一起。@RobW,什么意思?@groovy354动态生成元素时,您不能在开始时选择它们。而且,当页面包含在一个框架内时,您不能选择它们,除非您使用所有框架:true
或$('iframe').contents().find(…)
。错误是什么?jQuery是否已加载?你能发布你的代码吗?Simple不起作用
无法描述您的问题。它不会返回任何错误,但文本保持不变。“(function($){jQuery(“document”).ready(function(){jQuery('p,h1,h2,h3,span,.content,.post body')。each(function(){parse(this);});})(jQuery);”parse()函数用预定义字符串替换正则表达式的任何匹配项。replaceparse(this)
到console.log($(this))代码>并告诉我您在开发人员控制台中看到了什么;并意识到是解析函数出了问题。问题被驳回。谢谢大家的帮助!错误说明了什么?jQuery是否已加载?你能发布你的代码吗?Simple不起作用
无法描述您的问题。它不会返回任何错误,但文本保持不变。“(function($){jQuery(“document”).ready(function(){jQuery('p,h1,h2,h3,span,.content,.post body')。each(function(){parse(this);});})(jQuery);”parse()函数用预定义字符串替换正则表达式的任何匹配项。replaceparse(this)
到console.log($(this))代码>并告诉我您在开发人员控制台中看到了什么;并意识到是解析函数出了问题。问题被驳回。谢谢大家的帮助!