5

次のような iframe があります。

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

タグの下iframeにあるアイテムを取得しようとしています。 JavaScript では、次のようにします。html

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または.headプロパティを使用して 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 に答える