3

CKEditorを自分のWebサイトCMSに統合しました。[プレビュー]ボタンは機能しますが、スタイルシート(CSS)を使用できません。次の場所にあるpreview.htmlを編集しました。

ウェブサイト/ckeditor/プラグイン/プレビュー/

しかし、WYSIWYGエディターからコンテンツをプルするコードをラップアラウンドするHTMLをリッスンしていないようです。

私がこのコードを理解しているように:

<script>

var doc = document;
doc.open();
doc.write( window.opener._cke_htmlToLoad );
doc.close();

delete window.opener._cke_htmlToLoad;

</script>

エディターにあるものは何でもプルするので、すべてのページで使用できる要素を含めるために、そのhtmlをラップアラウンドできるはずですか?そして、スタイルシートへのリンク?

誰かがこれをしたことがありますか?出来ますか?

4

1 に答える 1

0

「window.opener._cke_htmlToLoad」は文字列 (完全な html ドキュメントを含む) のようです。

<body></body> の innerHtml を取得するには、次の正規表現を使用できます。

var doc = window.opener._cke_htmlToLoad; // is string
var innerBody = ( doc.replace(/((?:.(?!<\s*body[^>]*>))+.<\s*body[^>]*>)|(<\s*\/\s*body\s*\>.+)/g,'') );
document.getElementById('insertIntoMe').innerHTML = innerBody;

私のテストでは、これは Firefox でのみ機能するようです。ただし、Chrome と Internet Explorer は、変更を許可せずにウィンドウ ドキュメントを直接表示します。それで、他の誰かがより良い解決策を提供できるでしょうか?

于 2012-09-07T15:52:27.170 に答える