【问题标题】:ads code can't work through js injection?广告代码不能通过js注入工作?
【发布时间】:2015-12-17 09:12:24
【问题描述】:

我想通过 JS 将 google adsense 等广告代码动态注入到我的网页中。但几次试验都失败了。 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>

广告代码已注入 div。但是没有广告显示。 2.我将广告代码直接放在div中,没有任何js。它会显示广告。

我试过 agoda 的 ads 和 google adsense。它们是相同的结果。 为什么??

【问题讨论】:

    标签: ads


    【解决方案1】:

    您不能使用 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,并且由于它使用不同的“文档”实例,因此它将是异步的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 2011-03-01
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多