5

我有一个看起来像这样的 iframe:

<iframe id="iframe2" ...>
    #document
        <html>...</html>
</iframe>

我正在尝试iframe使用html标签获取下方的项目。
在 JavaScript 中,当我这样做时:

document.getElementByID("iframe2")

这将返回正确的 iframe。

但是,当我这样做时:

document.getElementByID("iframe2").childNodes

返回值为[]

document.getElementByID("iframe2").getElementsByTagName("#document")并且document.getElementByID("iframe2").getElementsByTagName("html")还返回[]

如何访问该html标签?
另外,那个#document标签叫什么?

4

4 回答 4

6
document.getElementByID("iframe2").contentWindow.document

或者,旧版 IE 不支持的变体,

document.getElementByID("iframe2").contentDocument

这将为您获取document嵌入页面的对象,然后您可以使用.documentElement,.body.headproperties 来获取 html/body/head DOM。

如果您想要window嵌入页面的对象,请使用contentWindow而不是contentDocument.

MDN 有一个iframe 脚本指南,您可能会发现它很有帮助。

于 2012-06-15T15:49:08.563 回答
2

请尝试以下代码:

var a = document.getElementById("iframe2").firstChild;
于 2012-06-15T15:46:03.667 回答
1

试试这个 :

var a = document.getElementById("iframe2").getElementsByTagName("*")[0];
于 2012-06-15T15:56:38.107 回答
0

IFrame 内容的 URL 是否与父页面具有相同的域?否则,由于同源策略,您将无法访问 IFrame 内的任何内容。

于 2012-06-15T16:09:21.430 回答