检测包含Javascript的DIV元素的点击次数?

时间:2010-01-19 18:11:43

标签: javascript dom adsense

如何检测从<DIV>触发的javascript点击? 例如,我在页面上的3个不同<DIV>中有3个adSense广告,我想在点击广告时检测并触发操作。

<DIV>为空时或任何其他元素时,很容易检测到{{1}}的点击次数;但如何检测adSense广告(代码)的点击次数?

3 个答案:

答案 0 :(得分:2)

据我所知,Adsense广告加载在iframe元素中,因此访问它们会违反相同的原始政策。这意味着您无法检测指向外部网址的iframe中的点击次数,因此无法完成。

答案 1 :(得分:2)

你正在使用像jQuery这样的框架吗?如果是这样,您可以为div的子项添加一个单击处理程序:

targetElement = $("#yourDivId").children()[0]
$(targetElement).click(function(){
    alert("target element was clicked");
});

答案 2 :(得分:1)

如果我真的需要实现这样的目标,我会欺骗用户。

不要试图点击iframe,而是制作叠加div并将其放在iframe上方。将click事件附加到它,当单击div时,隐藏它。

它会让用户感觉他点击了链接,但它没有正常工作。第二次点击它已经有效,导致叠加被隐藏。

示例代码(仅供说明之用):

<html>
    <style>
        .test {
            position : absolute;
            top : 0;
            left : 0;
            width : 300;
            height : 300;
            z-index : 999;
            filter : alpha(opacity = 0);
            opacity : 0;
            background-color:black;
        }
    </style>
    <script>
        function start(){
            var div = document.getElementById("target");
            var source = document.createElement("div");
            source.className = "test";
            document.body.appendChild(source);

            var style = source.style;

            var div2 = document.createElement("div");
            document.body.appendChild(div2);

            source.onclick = function(e){
                style.display = "none";
                div.onmouseout = function(){
                    div2.innerHTML = "mouseout";
                    style.display = "";
                    div.onmouseout = null;
                }
                div2.innerHTML = "clicked";
            }
        }
    </script>
    <body onload="start()">
        <div id="target">
            <iframe src="http://mail.ru" style="width:300;height:300"></iframe>
        </div>

    </div>
</html>