web-dev-qa-db-ja.com

Javascriptでiframe要素にアクセスするにはどうすればよいですか?

Iframe内にtexareaがあるWebページがあります。子ページjavascriptからこのtextareaの値を読み取る必要があります。現在、javascriptでwindow.parent.getelementbyID().valueを使用することで、iframe内のtextareaを除く親ページのすべてのコントロールの値を取得できます。

親ページのフレームIDとフレーム名は実行時に変化するため、フレームID /フレーム名を参照に使用することはできません。

53
archana roy

HTMLがある場合

_<form name="formname" .... id="form-first">
    <iframe id="one" src="iframe2.html">
    </iframe>
</form>
_

およびJavaScript

_function iframeRef( frameRef ) {
    return frameRef.contentWindow
        ? frameRef.contentWindow.document
        : frameRef.contentDocument
}

var inside = iframeRef( document.getElementById('one') )
_

insideはドキュメントへの参照になったので、iframe src内の内容に応じて、getElementsByTagName('textarea')などを自由に実行できます。

69
meder omuraliev

JQueryを使用すると、contents()を使用できます。例えば:

var inside = $('#one').contents();
19
Doug Amos