我想动态注入广告代码,如google adsense到我的网页由JS。但几次试验都以失败告终。1.我尝试这样做:
<div class="advertisement">test</div>
<script>
(function(){
var s = document.getElementsByClassName('card-description')[0];
if( s) {
s.innerHTML = "<script type='text/javascript'> agoda_ad_client = '17'; agoda_ad_width = 728; agoda_ad_height = 90;</scr"+"ipt>";
var adsrc = document.createElement('script');
adsrc.type = "text/javascript";
adsrc.src = "http://banner.agoda.com/js/show_ads.js";
s.appendChild(adsrc);
}
})();
</script>ads代码已经注入到div中。但是没有显示广告。2.如果我将广告代码直接放在div中,而没有任何js。iT展示了广告。
我试过agoda的广告和google adsense。它们是相同的结果。为什么??
发布于 2016-01-12 08:30:08
你不能用innerHTML插入javascript代码。如果你这样做,那么它将被作为内部内容,而不是javascript代码。因此,这一行是错误的,并且不会像您预期的那样工作:
s.innerHTML = "<script type='text/javascript'> agoda_ad_client = '17'; agoda_ad_width = 728; agoda_ad_height = 90;</scr"+"ipt>";相反,您可以使用document.write。因为这不是一个好主意,以同步的方式做它,你可以简单地这样做:
var adsenseTag = "...";
var if = document.createElement("iframe");
if.open();
if.contentDocument.write(adsenseTag);
if.close();
document.getElementsByClassName('card-description')[0].appendChild(if);记得在"adsenseTag“变量中将Adsense标签设置为字符串。然后,它会将内容写入iframe中,并且当它使用"document“的不同实例时,它将是异步的。
https://stackoverflow.com/questions/34330682
复制相似问题