3

使用 javascript,我需要显示一个 DIV,但前提是它包含一个 Google 广告。这是我通过 Google 使用的代码:

<div id='div-gpt-ad-1346196436229-0'>
    <script type='text/javascript'>
        googletag.cmd.push(function() { googletag.display('div-gpt-ad-1346196436229-0'); });
    </script>
</div>

上述代码中的 DIV ID 是由 Google 为广告位生成的。

我能得到任何想法或方向吗?诚然,我在 javascripting 世界中很弱,所以请保持温柔。:)

4

7 回答 7

13

只需像这样在标题代码中包含这个标签。

<script type='text/javascript'>
googletag.defineSlot('AdSlot-name', [AdSize], 
'div-gpt-ad-1346196436229-0').addService(googletag.pubads());
googletag.pubads().collapseEmptyDivs();
</script>

您添加的标签是:

googletag.pubads().collapseEmptyDivs();
于 2013-01-18T16:02:16.377 回答
2

有两种方法可以解决这个问题...如果没有使用DFP API 中的collapseEmptyDivs设置的广告,您可以改变思考方式并隐藏 div 。

如果你绝对必须从一个隐藏的 div 开始,然后只在它包含广告时才显示它,那就有点复杂了……如果你在页面上使用 jQuery,请查看我编写的插件。

其他答案几乎是正确的,但它不像检查 iframe 那样简单......根据我的经验,无论广告是否真的在那里显示,都会出现 iframe。在页面加载时检查 iframe 也不起作用,因为广告通常会在页面加载后呈现。

您需要连接到 DFP 脚本并在触发 renderEnded 后检查广告的状态...使用上面的链接插件,您有两个回调可以轻松做到这一点...插件还为广告添加了一个类display-block 或 display-none 的单元 div 取决于是否找到了广告......然后这些可以很容易地用于隐藏或显示带有 CSS 的 div。

于 2012-08-30T10:47:44.493 回答
2

如果没有广告,DoubleClick 只会输出一个空字符串。我正在计算包​​含广告并基于此隐藏的 div 中的儿童数量。

<script type="text/javascript">
    if($('#ad-id').children().length < 5)
    {
        $('#ad-id').hide();
    }
</script>
于 2013-10-28T16:55:18.243 回答
0

使用另一个响应,您可以使用 jQuery 检查 iframe 的元素内容

if($('#div-gpt-ad-1346196436229-0').has('iframe'))
  $('#div-gpt-ad-1346196436229-0').show
于 2012-08-29T17:32:54.810 回答
0

老问题,但我在 IE 中遇到了一个问题,即在未能获得广告时,广告会加载空白的白色背景 iframe。以下代码处理 op 问题 + IE 修复,您必须将 collapseEmtpyDivs 设置为 true 并从最初显示的 adunit 元素开始:

if( $(adUnit).css("display") == "none"  || $(adUnit).hasClass("display-none") )
    $(adUnit).remove();
于 2013-11-29T22:50:53.313 回答
0

这可能是一种除隐藏或显示广告服务容器 div 之外的方法。我知道这是题外话,但如果广告的存在决定了页面上的其他内容,比如项目是否应该绝对定位,还是浮动等等......在我的情况下,我在顶部有一个视频播放器只有当广告存在时,我才想更改其背景的广告投放槽。... 很老套的方法,似乎应该有一个回调或响应请求来确定这个在 display() 完成后...成功 / fali 等。

于 2014-09-02T06:32:19.183 回答
-1

基本上很简单

通过他们的广告,谷歌正在使用一个完整的 html 文档和一个 iframe,因此页面已完成,您只需检查 div 是否包含“html”或“iframe”标签,如果是则显示它

希望能帮助到你

*并且我建议将广告放在具有预定义 id-s 的持有人 diws

于 2012-08-29T15:41:16.920 回答