javascript - 如何检测 iframe(跨域)内的点击?又名防止点击欺诈

标签 javascript jquery html iframe ads

我的广告系统提供商向我发出了关于点击欺诈的警告。没有更多信息,他们只建议“为点击广告过快的用户隐藏广告”。我写了一段 JS 脚本,当点击时隐藏所有带广告的 DIV(使用 cookie),但这个解决方案不起作用,因为“内部”内容(带广告)是由调用和呈现的 JS 脚本生成的来自外部服务器的内容(正如您对广告系统的期望)。因此,当考虑到跨域安全性时,它有点像第 22 条军规。如何检测 DIV(本地定义)内的点击,其内容由外部 JS 和 iframe 呈现?

例子:

<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 会继承父类(“广告类”)。在跨域的情况下,这是无效的。有什么建议吗,伙计们?

最佳答案

您无法检测跨域 iframe 中的点击事件。

也就是说,您可能有一个不好的选择:

您可以做的最近的事情之一是检测焦点从您的窗口移动到 iframe:

window.focus(); //force focus on the currenct window;
window.addEventListener('blur', function(e){
    if(document.activeElement == document.querySelector('iframe'))
    {
        alert('Focus Left Current Window and Moved to Iframe / Possible click!');
    }
});

http://jsfiddle.net/wk1yv6q3/

但是它并不可靠,松散的焦点并不意味着点击,它可能是用户使用 TAB 在网站上移动。

另一个问题是,你只检测第一次焦点移动到 iframe,你不知道用户在那里做了什么,他可以点击一百万次而你永远不会知道。

关于javascript - 如何检测 iframe(跨域)内的点击?又名防止点击欺诈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337304/

相关文章:

javascript - 需要帮助来创建我的第一个 javascript 类

javascript - 将 Google Analytics Embed API 图表导出为 PNG 和 Excel

javascript - 使用 JavaScript 根据页面大小获得不同的行为

javascript - 通过jquery全选

javascript - 通过 jQuery 或 Javascript 应用于父窗口的外部 css 规则

javascript - 使用 JQuery 在悬停时显示文本

javascript - 使用函数时未定义

javascript - 如何正确地将数组传递给 JSON

html - 将本地 HTML 文件读入 R

javascript - Html/jQuery - 使用多选 jquery ui 下拉列表但无法正常工作