私はIE用に現在デバッグしているCMSアプリケーションを構築しています。しかし、理解できないことが起こります。
まず、ページのコンテンツを含む div があります。div のコンテンツを抽出し、javascript を使用して iFrame を作成し、それを div に追加します。これは、WYSIWYG エディターを作成するためのものです。次に、コンテンツを iFrame に追加しようとすると、問題が発生します。IE が何らかの理由で iFrame の本体にアクセスできません。[object Document] または [object HTMLDocument] を提供する iFrame のドキュメントにアラートを出すことができますが、ボディにアラートを出すと null が返されます。
この関数を使用して、ドキュメントを JavaScript オブジェクトの一部として取得します。
iframedoc: function(aID) {
if (document.getElementById(aID).contentDocument){
return document.getElementById(aID).contentDocument;
} else {
var iFrame = document.getElementById(aID);
return iFrame.contentWindow.document;
}
},
そして、これが私が初めて呼び出す場所です。
tas[i].innerHTML = "";
tas[i].appendChild(ta_edit_functions);
tas[i].appendChild(ta_edit);
tas[i].appendChild(ta_result);
alert(ta.iframedoc(ta_edit_id));
ta.iframedoc(ta_edit_id).body.innerHTML = ta_edit_content;
ta.iframedoc(ta_edit_id).designMode = 'on';
ここでは、div を空にし、WYSIWYG 関数、iFrame、および最終的にフォームを送信するためのテキストエリアを含む div を追加します。
私は IE 8 と 9 でテストしています。最も奇妙なことは、IE 8 で最初に iframedoc を呼び出す前にアラートを出すと、突然本文が表示されることです。
誰かが少なくとも私を正しい方向に向けることができれば、本当に感謝しています. 何が起こっているのか、まったくわかりません。