我的网站上有一种“免费增值”模式,因此,如果订阅了用户,他们将看不到页面上的Google Adsense广告。
因此,我想根据我Javasript代码中的条件if()
语句来制作Adsense广告或不显示。
但是,从Google那里获得的代码旨在直接插入HTML中,而且除此之外,他们还在做一些棘手的事情,其中包括在注释区域中设置一些变量,这我无法理解。
代码如下所示:
<script type="text/javascript"><!--
google_ad_client = "xx-xxx-00000000000000000000";
/* karamoh */
google_ad_slot = "0000000000";
google_ad_width = 320;
google_ad_height = 50;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
是否可以这种方式进行转换,以便我可以在其周围包裹一个
if()
语句?(我想我可以将所有内容放到
document.write()
函数中,但这似乎很简单。当然,有一种方法可以更直接地利用Javascript吗?) 最佳答案
最干净的方法是检查服务器端的客户端是否优质,并且根本不要在发送给客户端的页面中插入标签。
如果您由于某种原因无法访问它,并且不介意对show_ads.js的额外请求,则似乎将无意义的google_ad_client
设置为Adsense服务可以回复400,而根本不会绘制任何广告,因此您可以使用它代替广告代码的第一行:
if(premiumClient)
google_ad_client = "some-nonsense-value"
else
google_ad_client = "your-correct-value"
end
测试还显示,如果您输出带有
<script>
的document.write
标记,则它会像在文档中一样真实地阻止执行,因此您自己建议的内容或以下干扰性较小的代码也可能起作用:<script type="text/javascript"><!--
google_ad_client = "xx-xxx-00000000000000000000";
/* karamoh */
google_ad_slot = "0000000000";
google_ad_width = 320;
google_ad_height = 50;
//-->
if(!premiumUser)
document.write('<scr'+'ipt type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"><'+'/script>')
</script>
我不记得是否确实可以保证它确实会阻止其余执行,因此,由于show_ads.js中存在另一个
document.write
,它可能现在在某些浏览器中失败,或者将来突然开始失败。关于javascript - 我可以有条件地展示Google广告吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10876924/