当我想使用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>');
你能帮忙吗?
答案 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>