document.elementFromPoint(x,y)来获取iframe中的元素

document.elementFromPoint(x,y) to get element inside iframe

本文关键字:iframe 获取 元素 elementFromPoint document      更新时间:2023-09-26

我正在尝试获取html页面中的元素,我使用document.elementFromPoint(x,y)来检测输入元素;当没有iframe时,它工作得很好。但在iframes中,它在这个代码中不起作用

html如下

我错过什么了吗?

<html>
...
<div>
<div>
<iframe src="some source"..>  
<html>
..
<form>
<fieldset>
<input>

感谢

根据此处的文档:

如果指定点上的元素属于另一个文档(例如,iframe的子文档),则返回调用该方法的文档的DOM中的元素(在iframe情况下,是iframe本身)。

这意味着,如果您当前的DOM上下文是iframe的父级,那么它应该返回iframe。此外,如果iframe来自另一个域,您应该了解跨域安全问题。

如果它来自您的域,并且您希望在iframe中获取元素,您可以执行以下操作:

var el = document.elementFromPoint(x, y);
if (el instanceof HTMLIFrameElement)
    el = el.contentWindow.document.elementFromPoint(x, y);  //Not sure if you need to update x, y to account for being inside another dom.

如果你的iframe与你的网站不在同一个域上,你将无法使用jquery/javascript 选择标签