检测 iFrame onClick

Posted

技术标签:

【中文标题】检测 iFrame onClick【英文标题】:Detect an iFrame onClick 【发布时间】:2015-04-28 19:35:45 【问题描述】:

我为主页创建了一个广告横幅,它在两个广告之间循环。其中一个广告包含一个带有公司提供的表单的 iFrame,并且 iFrame 中的 url 指向位于他们自己域中的表单。我想在用户单击 iFrame(显示他们正在使用它)时停止广告循环,因为我不希望广告在他们填写表格的一半时改变。结果也会显示在同一 iFrame 区域中。

当点击整个广告 div 区域时,我已经设法使用 jQuery 来停止广告循环,并且效果很好,但是一旦我添加了 iFrame,该广告区域就不会响应点击。

我认为我不能在 iFrame 顶部对不可见触发器等进行 z-index 索引,因为这可能会阻止访问者在 iFrame 中使用表单?

有人知道点击 iFrame 时如何让广告停止吗?

目前我正在使用:

$("#The advert DIV").click(function()
stopLoop();
)

如果成功停止广告循环,则调用的函数会清除循环广告的间隔。我给 iFrame 赋予了 advertiFrame 的 id,并将其用作上述代码中的选择器,但 iFrame 的 onClick 没有响应。

我现在不知道该怎么办?非常感谢任何帮助。

【问题讨论】:

Apply onClick to Iframe 的可能重复项 【参考方案1】:

当您从 iframe 中调用元素时,可能会出现此问题。

这可能对你有帮助:

    <script>
        window.parent.$("#The advert DIV").click(function()
        stopLoop();
        );
    </script>

【讨论】:

感谢您的回答 Sharry,但不幸的是它并没有解决我的问题。【参考方案2】:

由于安全等原因,跨域选项有限,我最终使用了放置在 iFrame 顶部的图像(按 z-index),单击时会淡出并允许访问 iframe。单击图像会触发停止图像循环的动作。这对我来说是一个解决方案。避免用户必须单击两次才能打开 iFrame 中的第一个表单字段本来很好,但我认为这对我来说是一个令人满意的解决方案。

【讨论】:

以上是关于检测 iFrame onClick的主要内容,如果未能解决你的问题,请参考以下文章

如何检测是不是加载了 iframe?

javascript-如何检测 iframe 中的滚动事件?

检测页面是不是在 iframe 中 - 服务器端

检测动态加载的 iframe

检测 iframe 何时开始加载新 URL

检测 iframe 加载错误