1

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

<DIV>当它为空时或与任何其他元素一起时,很容易检测到点击;但是如何检测对 adSense 广告(代码)的点击?

4

3 回答 3

2

据我所知,Adsense 广告加载在 iframe 元素中,因此访问它们将违反相同的来源政策。这意味着您无法检测到指向外部 URL 的 iframe 中的点击,因此无法完成。

于 2010-01-19T18:16:12.590 回答
2

你在使用像 jQuery 这样的框架吗?如果是这样,您可以将点击处理程序添加到 div 的子项:

targetElement = $("#yourDivId").children()[0]
$(targetElement).click(function(){
    alert("target element was clicked");
});
于 2010-01-19T18:16:41.417 回答
1

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

与其尝试点击 iframe,不如制作一个覆盖 div 并将其放在 iframe 上方。给它附加点击事件,当点击 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>
于 2010-01-20T13:14:48.617 回答