我收到了我的广告系统提供商关于点击欺诈的警告。没有更多的信息,他们所推荐的只是“为点击广告太快的用户隐藏广告”。我写了一段JS脚本,它在单击时将所有带有广告的DIVs隐藏N秒(使用cookie),但这个解决方案不起作用,因为“内部”内容(带有广告)是由JS脚本生成的,该脚本调用并呈现来自外部服务器的内容(正如您在广告系统中所期望的那样)。因此,当考虑到跨域安全性时,它有点像是第22条军规。如何检测由外部JS和iframe呈现的DIV (本地定义的)中的点击?
示例:
<div class="ad-class"> <!-- locally defined div -->
<div id="my-id"> </div> <!-- identifies my ad in the provider's system -->
<script>
var foo = blah // declares the ad dimensions and stuff
// and renders the contextual ad in #my-id DIV
</script>
</div>如果都是本地的,解决方案将很容易,因为内部div将继承父类("ad- class ")。如果是跨域,则此参数无效。有什么建议吗,伙计们?
发布于 2017-02-22 01:05:17
Luizgrs启发了我这个解决方案:
var clickIframe = window.setInterval(checkFocus, 100);
var i = 0;
function checkFocus() {
if(document.activeElement == document.getElementById("ifr")) {
console.log("clicked "+(i++));
window.focus();
}
}<!DOCTYPE html>
<h2>Onclick event on iframe</h2>
<iframe src="https://www.brokenbrowser.com/" id="ifr"></iframe>
该函数检测iframe是否具有焦点,如果有,则用户单击到iframe。然后,我们将焦点返回到主窗口,该窗口允许我们查找用户是否再次单击。
这个技巧对我在2步iframe click-click上的POC很有用。了解用户第一次点击iframe的时间,可以让我重新组织我的不同层,以保持完美的错觉。
发布于 2019-11-09 08:19:16
@Luizgrs指出的方法非常准确,但我确实使用了一种不同的方法来检测点击事件:
var iframeMouseOver = false;
$("YOUR_CONTAINER_ID")
.off("mouseover.iframe").on("mouseover.iframe", function() {
iframeMouseOver = true;
})
.off("mouseout.iframe").on("mouseout.iframe", function() {
iframeMouseOver = false;
});
$(window).off("blur.iframe").on("blur.iframe", function() {
if(iframeMouseOver){
$j("#os_top").click();
}
});上面的代码在桌面上工作得很棒,如果你想添加移动支持,你只需要使用touch events、touchstart和touchend事件来模拟移动鼠标悬停。
发布于 2015-03-31 03:08:10
不久前我找到了this plugin for WordPress。显然,它做了我需要的事情--只是想知道这个家伙是如何工作的,它确实计算了Adsense iframe上的点击量。我必须仔细看看,虽然我不是一个PHP程序员。我主要用Python编程,需要一些Django的解决方案。如果任何人可以轻松地阅读代码,我将不胜感激。
https://stackoverflow.com/questions/29337304
复制相似问题