JavaScriptでは、iframeのinnerHTMLをどのように設定できますか?つまり、設定方法は get ではありません。
window["ifrm_name"].document.innerHTML= "<h1>Hi</h1>"
は機能しません。他のソリューションでも同じです。
Iframeと親ドキュメントが同じドメインにあります。
本文ではなく、ドキュメント全体のiframeのhtmlを設定する必要があります。
私はjqueryソリューションを避ける必要があります。
本当に簡単な例...
<iframe id="fred" width="200" height="200"></iframe>
次に、インライン、イベントの一部などの次のJavascriptが実行されます...
var s = document.getElementById('fred');
s.contentDocument.write("fred rules");
「contentDocument」はメインウィンドウに表示される「ドキュメント」に相当するため、これに対して呼び出しを行って、本文、ヘッド、内部の要素などを設定できます。
私はこれをIE8、ChromeおよびFirefox ...でのみテストしました。そのため、利用可能なコピーがある場合は、IE6/7でテストすることをお勧めします。
FirefoxおよびChrome(Operaについては不明))では、 data:URI スキームを使用できます。
<iframe src=".... data: URI data here ......">
ここ はdata:URIエンコードされたデータを生成するツールです。
これは IEでは機能しません :
セキュリティ上の理由から、データURIはダウンロードされたリソースに制限されています。データURIは、ナビゲーション、スクリプト、またはフレームまたはiframe要素の入力に使用できません。
ただし、コメントで言ったように、ドキュメントの本文を取得/設定するだけで十分な場合は、リンクされた例のいずれかを使用する方がはるかに簡単です。
AJAXS envでのファイルアップロードの改善には、同じニーズがありました。これはie8とff 22.0で私のために働きました。 body innerhtmlとdiv innerhtmlの両方が機能します。
function copyframedata(data) {
var x = document.getElementById("photo_mgr_frame");
var y = x.contentWindow || x.contentDocument;
if (y.document) y = y.document;
y.getElementById('photo_mgr_mb').innerHTML = data;
}
w3からそれを得た