点击事件不适用于Google广告iframe

时间:2013-08-02 06:29:44

标签: php javascript jquery google-ad-manager

我正在尝试创建一个可以检测Google广告点击次数的脚本。除了click,focus,mousedown之外,所有事件都像onmouseover,out等一样工作。当我点击谷歌广告时,它打开它的广告链接,但不要在点击事件上运行我的jquery脚本。我也尝试过防御和类似的其他功能。 我想检测点击谷歌广告,并在点击时将iframe宽度和高度解析为php文件。

$(window).load(function(){
    $('iframe').bind('mouseover', function(){
        var iframeID = $(this).attr('id');
        $(this).contents().find('html').unbind();
        $(this).contents().find('html').bind('click', function(){
            alert(iframeID);
        });
    });
});

这是在鼠标悬停时运行的代码,但不是单击事件。

2 个答案:

答案 0 :(得分:1)

您需要在iframe的内容上绑定click事件,直到内容完全加载到iframe中。尝试将代码包装在load事件中。

  $('iframe').load(function() {
       var iframeID = $(this).attr('id');
       $(this).contents().find('html').unbind();
       $(this).contents().find('html').bind('click', function(){
           alert(iframeID);
       });
  });

答案 1 :(得分:0)

当内容来自其他域时,无法捕获iFrame的点击事件。

您可以做的是检测鼠标输入并离开iframe。

这是示例

<div class="item">
<iframe src="http://www.google.com" width="612" height="344" frameborder="0"></iframe>
</div>

<script type="text/javascript">
$("div.item iframe")
.mouseover(function(){
    alert("mouse over");
})
.mouseout(function(){
    alert("mouse out");
});
</script>