0

現在、Firefox 7.0.1 を使用しています。私は WYSIWYG エディターに取り組んできましたが、最近、編集可能なドキュメントにコンテンツを埋め込む際の問題を発見しました。これがバグかどうかはわかりませんが、ドキュメントに designMode=on のような埋め込みコンテンツがある場合:

<object height="81" width="100%"> <param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8921929"></param> <param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8921929" type="application/x-shockwave-flash" width="100%"></embed> </object>

... ページにまったく表示されません。デザイン モードがオフになっている場合、コンテンツは問題なく表示されますが、それ以外の場合はオブジェクトが読み込まれず、コンテンツがどこにあるかがわからないため、コンテンツを編集することはほとんど不可能です。プレースホルダーを作成することもできますが、編集中のドキュメントにコンテンツが表示されるようにしたいと考えています。これは、ページを編集するために iframe 内で使用するベース ドキュメントです。

var HTML = '<html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body></body></html>';

編集可能な iframe ドキュメントを生成するコードは次のとおりです。

var editor = document.createElement('iframe');
document.getElementById(parent_id).appendChild(editor);

var editor_doc = editor.contentWindow.document || editor.contentDocument;
editor_doc.write(HTML);
editor_doc.close();

editor_doc.designMode =  "On";

この問題の解決策または回避策はありますか?

4

1 に答える 1

1

最終的に、embed、object、および param タグを解析し、データをドキュメントに追加する前に iframe に配置することで、これを解決しました。これは、移行用の Doctype を使用するすべての人にとって優れたソリューションです。

于 2011-11-08T12:59:10.130 に答える