获取JavaScript中iframe中的DOM元素

获取JavaScript中iframe中的DOM元素,javascript,html,iframe,getelementbyid,Javascript,Html,Iframe,Getelementbyid,我有两个文档,其中一个用iframe嵌入到另一个文档中。我试图使用此代码访问iframe内的img标记,但是,我无法在iframe元素上使用document.getElementById函数: iframes = document.getElementsByTagName("iframe") spaces = iframes[0].contentWindow.document; spaces = spaces.getElementsByTagName("img") for (var i=0, m

我有两个文档,其中一个用iframe嵌入到另一个文档中。我试图使用此代码访问iframe内的img标记,但是,我无法在iframe元素上使用document.getElementById函数:

iframes = document.getElementsByTagName("iframe")
spaces = iframes[0].contentWindow.document;
spaces = spaces.getElementsByTagName("img")
for (var i=0, max=spaces.length; i < max; i++) {
     alert(spaces[i].innerHTML)
}
alert(spaces)
var x = document.getElementById("frame");
var y = (x.contentWindow || x.contentDocument);
if (y.document)y = y.document;
alert(y.body.innerHTML)
iframes=document.getElementsByTagName(“iframe”)
spaces=iframes[0].contentWindow.document;
spaces=spaces.getElementsByTagName(“img”)
对于(变量i=0,max=spaces.length;i

空格返回[object HTMLCollection],y返回[object HTMLDocument]

因此,如果您与iframe内容位于同一个域中,则可以使用

document.getElementById('my-iframe').contentWindow.document.getElementById(...)
如果您不在同一域中,出于安全原因,您无法访问/操作iframe内容。否则,恶意的人可能会抛出一个类似Facebook之类的iframe,窃取其他人的信息


如果您不在同一个域上,但同时拥有正在使用的两个域,则可以在两个帧之间进行设置。并使用父对象向子对象发送消息以供信息/操作。

尝试提供更多类似于iframe后面的html的代码。这对我来说是返回null。我应该补充一点,嵌入的html页面也嵌入了youtube视频,但我并没有访问它。有趣的是,当我删除“.getElementById”(“space”)部分时,它返回[object HTMLDocument],但当我添加它时,它返回null。我进一步调试后发现,“document.getElementById('my-iframe').contentWindow.document”对象只有一个属性,即location。