0

HTMLコードをフレームに入れようとしています。

私が使用したフレーム外:document.writeそして中に?

フレームは次のとおりです。

var frameTwitter = document.getElementById('FrameTwitter');
4

3 に答える 3

3

contentWindowiFrame に書き込むには、そのまたはを取得する必要がありますcontentDocument

var frameTwitter = document.getElementById('FrameTwitter'),
    frameDocument = frameTwitter.contentWindow || frameTwitter.contentDocument;
frameDocument = frameDocument.document || frameDocument;

frameDocument.write('<p>Hello World!</p>');

デモ: http://jsfiddle.net/NTICompass/8Ekrs/1/

UPDATEwindow.frames : iFrame のwindowオブジェクトを取得するために使用することもできます。

var frameDocument = window.frames.FrameTwitter.document;
frameDocument.write('<p>Hello World!</p>');

デモ: http://jsfiddle.net/NTICompass/8Ekrs/2/

于 2012-09-21T14:39:58.697 に答える
0

同じドメインにある2つのファイルを使用しているので、これは機能するはずです。ドメイン、プロトコル、ポートを一致させる必要があるため、で相対パスを使用するのがおそらく理想的iframeです。そうしないと、機能しなくなります。

MainPage.html

<iframe src="Frame.html" id="FrameTwitter"></iframe>

<script type="text/javascript">
var frame = document.getElementById('FrameTwitter');
frame.writeInto('Some text here');
</script>

Frame.html

<script type="text/javascript">
function writeInto(str) {
    document.writeln(str);
}
</script>

そうすれば、ファイル内で必要な機能をセットアップし、Frame.htmlクロスフレーム開発についてまだ心配することなく、そこで機能をテストできます。次に、機能が設定されたら、親からそれらを起動できます。

于 2012-09-21T14:44:45.230 に答える
0

postmessage API を使用する必要がありますhttps://developer.mozilla.org/en-US/docs/DOM/window.postMessageを参照してください

ロケット危険物も正しい

通常、異なるページ上のスクリプトは、スクリプトを実行したページが同じプロトコル (通常は両方とも http)、ポート番号 (http のデフォルトは 80)、およびホスト (モジュロ) を持つ場所にある場合にのみ、相互にアクセスできます。 document.domain が両方のページで同じ値に設定されている)

于 2012-09-21T14:37:38.647 に答える