如何使用jQuery替换网站上的广告?

时间:2016-07-06 02:23:51

标签: javascript jquery html css tampermonkey

当我想使用Tampermonkey扩展程序通过jQuery替换广告时出现问题。

我用来替换广告的代码是:

$(".adsbygoogle").replaceWith('<div id="reklama" style="display: inline-block; width: 300px; margin-bottom: 10px; height: 250px;"><script>Ad Here</script<div>');');

但是当我尝试访问该网站时,它会完全禁用我的扩展程序。

当我尝试用图片替换广告时,它有效。

$(".adsbygoogle").replaceWith('<div id="reklama" style="display: inline-block; width: 300px; margin-bottom: 10px; height: 250px;"><img src="http://example.com/imagehere.png"><div>');

你能帮忙吗?

2 个答案:

答案 0 :(得分:0)

在您的代码中,错过了 尖括号,同时关闭了script代码。

<强>修正:

$(".adsbygoogle").replaceWith('<div id="reklama" style="display: inline-block; width: 300px; margin-bottom: 10px; height: 250px;"><script>Ad Here</script><div>');');

答案 1 :(得分:0)

好的我找到了。
问题是字符串中的</script>标记。

由于您在.replaceWith() ...中使用<script></script>方法 当遇到字符串的</script>时,“替换”操作将停止 所以它很快停止了。

解决方案是使用反斜杠</script>转义此<\/script>

试试这个:
它会在警报中显示整个脚本,您是否已经尝试过:

<script>
$(".adsbygoogle").replaceWith('<div><script>alert(\'<script type="text/javascript" src="//website.com/ad.php"><\\/script>\')\<\/script></div>');
</script>

注意 我在其中一个上做过的“双重逃脱”!
另请注意,我还必须逃避一些单引号

所以现在,你真正想做的是使用这个脚本而不是警告它:
这是您的解决方案:

<script>
$(".adsbygoogle").replaceWith("<div><script type='text/javascript' src='//website.com/ad.php'><\/script></div>");
</script>