作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的广告系统提供商向我发出了关于点击欺诈的警告。没有更多信息,他们只建议“为点击广告过快的用户隐藏广告”。我写了一段 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!');
}
});
但是它并不可靠,松散的焦点并不意味着点击,它可能是用户使用 TAB 在网站上移动。
另一个问题是,你只检测第一次焦点移动到 iframe,你不知道用户在那里做了什么,他可以点击一百万次而你永远不会知道。
关于javascript - 如何检测 iframe(跨域)内的点击?又名防止点击欺诈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337304/
我是一名优秀的程序员,十分优秀!