0

iframe にアクセスしようとすると、このエラーが発生し、何が間違っているのかわかりません。誰かがこの問題で私を助けることができますか?

var ifrm = document.getElementById('iframe'),
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow :
                              (ifrm.contentDocument.document)
                            ? ifrm.contentDocument.document :
                              ifrm.contentDocument;

ifrm.open();
ifrm.write("Hello World!");
ifrm.close();

これらは私が受け取るエラーです:

キャッチされていない TypeError: 未定義のプロパティ 'ドキュメント' を読み取ることができません

キャッチされていない TypeError: 未定義のプロパティ 'readyState' を読み取ることができません

4

2 に答える 2

3

DOM 要素を探しています。

<iframe>

iframe は HTML タグの名前であり、この要素の id の値 (id="value" として定義される) ではないため、次のように使用します。

document.getElementsByTagName('iframe')[0]

ページに iframe が 1 つしかない場合でも、getElementsByTagName() は結果の配列を返すため、ページに複数の iframe がある場合は、0 を任意のインデックスに変更します。

さらに、次のように三項演算を単純化できます。

ifrm = ifrm.contentWindow ? ifrm.contentWindow.document : ifrm.contentDocument;

このようにして、すべてのブラウザーで iframe のドキュメント オブジェクトを取得できます。これにより、open()、write()、close() メソッド、および readyState 属性にアクセスできます。

于 2012-07-03T19:36:47.347 に答える
2

タグの後に JavaScript ソースを配置します。

このような

<html>
<head>
</head>
<body>
<iframe>
<script>
blah blah
</script>
</body>
</html>
于 2013-04-24T04:52:07.553 に答える