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



我有一个使用 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中,如果你有一个HTML元素在iframe内容的前面,在这种情况下,调用'iframe.contentWindow.elementFromPoint(x, y)'将返回null。

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

最新更新