javascript - 为什么 elementFromPoint() 在 IE 11 的 iframe 中使用时不返回 DOM 元素?

标签 javascript jquery html css internet-explorer

我有一个使用 iframe 嵌套在(父)框架中的文档(子)。

我需要使用来自父级的 [elementFromPoint()][1] 在子级中检索鼠标协调的 DOM 元素。

脚本在最新的 Chrome 和 Firefox 上运行良好,但在 IE 11 上它总是返回 null

我需要知道使用 IE 可能会出现什么问题以及可能的解决方案或解决方法。

注意:即使文档位于同一域中,脚本也无法在 IE 上运行。

例子在这里,请点击橙色框: http://jsbin.com/masusekude/1/

document.getElementById('main').addEventListener('click', function (e) {
                    var elm = document.getElementById('iframe').contentDocument.elementFromPoint(e.pageX, e.pageY);
                    alert(elm);
                }.bind(this));

最佳答案

我发现我的情况出了什么问题,也许你也检查一下你的。在我的例子中,我有一个 div 元素,它隐藏了 iframe 内容并捕获鼠标移动。

我能看到的是,在 IE 中,如果 iframe 内容前面有一个 HTML 元素,调用“iframe.contentWindow.elementFromPoint(x, y)”将在这种情况下返回 null。

我的问题的解决方法是隐藏那个 div 只是为了调用 elementFromPoint 并在之后再次显示它。

关于javascript - 为什么 elementFromPoint() 在 IE 11 的 iframe 中使用时不返回 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898347/

相关文章:

javascript - 如何在 d3 js 中的曲线上绘制 svg 圆圈?

javascript - 打开关闭按钮功能 Bootstrap

jQuery:它添加类,删除类本身?

html - 在 1 行中排列多列菜单

javascript - 更改提交下拉菜单不执行 php 代码

javascript - Web Worker 函数无法解析数组,返回单个结果

javascript - 如何使用 Stripe 接受比特币和美元付款?

javascript - Accordion jQuery - 一次打开一个元素并关闭其他元素

html - 将 CSS 应用到 AngularJS 指令元素标签

html - Vue 框架工作如何在每一行中查看我的 API 元素 5