如何检测从 javascript 触发的点击<DIV>
?
例如我<DIV>
在一个页面上有 3 个不同的 3 个 adSense 广告,我想在点击一个广告时检测并触发一个操作。
<DIV>
当它为空时或与任何其他元素一起时,很容易检测到点击;但是如何检测对 adSense 广告(代码)的点击?
如何检测从 javascript 触发的点击<DIV>
?
例如我<DIV>
在一个页面上有 3 个不同的 3 个 adSense 广告,我想在点击一个广告时检测并触发一个操作。
<DIV>
当它为空时或与任何其他元素一起时,很容易检测到点击;但是如何检测对 adSense 广告(代码)的点击?
据我所知,Adsense 广告加载在 iframe 元素中,因此访问它们将违反相同的来源政策。这意味着您无法检测到指向外部 URL 的 iframe 中的点击,因此无法完成。
你在使用像 jQuery 这样的框架吗?如果是这样,您可以将点击处理程序添加到 div 的子项:
targetElement = $("#yourDivId").children()[0]
$(targetElement).click(function(){
alert("target element was clicked");
});
如果我真的需要实现这样的目标,我会欺骗用户。
与其尝试点击 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>