我有一个使用 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/