HTMLコードをフレームに入れようとしています。
私が使用したフレーム外:document.write
そして中に?
フレームは次のとおりです。
var frameTwitter = document.getElementById('FrameTwitter');
HTMLコードをフレームに入れようとしています。
私が使用したフレーム外:document.write
そして中に?
フレームは次のとおりです。
var frameTwitter = document.getElementById('FrameTwitter');
contentWindow
iFrame に書き込むには、そのまたはを取得する必要があります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>');
同じドメインにある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
クロスフレーム開発についてまだ心配することなく、そこで機能をテストできます。次に、機能が設定されたら、親からそれらを起動できます。
postmessage API を使用する必要がありますhttps://developer.mozilla.org/en-US/docs/DOM/window.postMessageを参照してください
ロケット危険物も正しい
通常、異なるページ上のスクリプトは、スクリプトを実行したページが同じプロトコル (通常は両方とも http)、ポート番号 (http のデフォルトは 80)、およびホスト (モジュロ) を持つ場所にある場合にのみ、相互にアクセスできます。 document.domain が両方のページで同じ値に設定されている)