javascript - 如果点击目标是 iframe,则检测 div 外部的点击不起作用

标签 javascript iframe dialog dom-events

我编写了对话框,当单击外部(无覆盖/背景)时它会关闭。

它工作得很好除非有一个 iframe,在这种情况下我的外部点击监听器永远不会被调用。

这里是a JSBIN来说明问题。 (http://jsbin.com/vuneyopedu/edit?js,console,output)

在下面的截图中简单解释一下:

  • 点击红色对话框增量。
  • 点击外部对话框(黄色和绿色)应该递减,但只有黄色有效。
  • 点击 iframe(绿色)时,外部点击的事件监听器永远不会被调用

Example

问题是 - 如何让点击红色方 block 之外的任何内容(特别是点击 iframe)来减少数字。 (或者在“真实”世界中关闭对话框)

最佳答案

如何将事件绑定(bind)到 iframe 的文档。

iframes = document.getElementsByTagName('iframe');
iframesArray = Array.prototype.slice.apply(iframes);

iframesArray.forEach(function(frame) {
  frame.contentWindow.document.addEventListener('click', function() {
    inc();
  }, true);
});

关于javascript - 如果点击目标是 iframe,则检测 div 外部的点击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999344/

相关文章:

MATLAB:输入以确认输入对话框?

javascript - 如果文本框内有值,请删除禁用按钮

javascript - 嵌入 iframe 的 Three.js 在 iOS 8/9 中不断增长

javascript - mongodb 中的加密哈希函数

internet-explorer - iframe 中 url 的基本身份验证

php - 使用 Ajax 和 Jquery 设置 Iframe 目标?

android - jQuery UI 对话框背后的链接在 Android 上是可点击的

python - PyQt每次单击后都会创建附加对话框

javascript - 理解 Javascript 原型(prototype)链

CSS3 Javascript 库