【问题标题】:Click on iframe content not getting read by jQuery单击 jQuery 未读取的 iframe 内容
【发布时间】:2016-12-22 15:21:22
【问题描述】:

我在使用 jQuery click() 函数时遇到了一个奇怪的问题。

问题是,假设我有一个类为 foo 的 div,其中主要包含广告,我想显示一个控制台日志消息,说明每次有人点击广告时点击广告。

所以,我写了一个这样的小 jjquery:

(function($){
    $(".foo").click(function(){
        console.log( "Ad Clicked" );
    });
})(jQuery);

请注意:这是一个示例代码。实际代码比这更复杂,但基于相同的逻辑。

问题

如果我使用类似这样的某种附属横幅代码,上面的代码会正确显示控制台消息:

<div class="foo">
    <a href="example.com/something"><img src="http://example.com/adbanner.jpg" /></a>
</div>

但是,如果我将它封装在使用 iframe 来展示广告的 AdSense 代码中,则每次我使用该点击事件点击广告时都不会被触发,并且控制台消息也不会显示。这是一个 AdSense 代码示例:

<div class="foo">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle"
        style="display:block"
        data-ad-client="ca-pub-XXXXXXXXXX"
        data-ad-slot="XXXXXXXXXXX"
        data-ad-format="auto"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
</div>

我要做的是编写一个通用代码,即使我使用的是哪种广告代码,它都能捕捉到点击。无论是附属广告代码还是基于 iframe 的 Adsense 广告。

你们中有人知道为什么点击事件不适用于基于 iframe 的 AdSense 代码吗?

【问题讨论】:

  • @Pingbeat 引用的答案看起来很明智,我也想知道这是否是 Adsense 的设计副作用,以便他们可以避免基于代码的点击?

标签: javascript jquery iframe adsense


【解决方案1】:

在电脑上可以,但在手机上不行。看看https://github.com/vincepare/iframeTracker-jquery

【讨论】:

    猜你喜欢
    • 2015-03-22
    • 2014-12-28
    • 2016-11-08
    • 1970-01-01
    • 2013-01-29
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多