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

时间:2012-01-10 22:10:54

标签: javascript html

我想在html页面中获取元素,我使用document.elementFromPoint(x,y)来检测输入元素;当没有iframe时,它工作正常。但在iframe中,它在这段代码中不起作用

html如下

我想念一些东西吗?

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

由于

2 个答案:

答案 0 :(得分:4)

根据文档here

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

这意味着如果您当前的DOM上下文是iframe的父级,它应该返回iframe。如果iframe来自其他域,您还应该阅读cross domain security issues

如果它来自您的域,并且您希望获取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.

答案 1 :(得分:0)

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