对于jQuery click()
函数,我遇到了一个棘手的问题。
问题是,假设我有一个foo
类的div,它主要包含广告,我想显示一个控制台日志消息,说明每次有人点击广告时都会点击广告。
因此,我编写了一个类似于这样的小型So查询:
(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>
但是,如果我将它包装在一个使用AdSense代码显示广告的iframe
代码中,那么每次我点击使用该单击事件的广告时,都不会触发它,也不会显示控制台消息。下面是一个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代码吗?
发布于 2017-01-20 22:37:55
在个人电脑上是可能的,但在移动电话上是不可能的。看一看https://github.com/vincepare/iframeTracker-jquery
https://stackoverflow.com/questions/41286403
复制相似问题