1

私の Web サイトには CKEditor があります。このコードをソース ウィンドウに入力すると、次のようになります。

<ul class="active">
   <li>
        <a href="#">
            <img align="" alt="" border="0" src="/media/1.png" /> 
            <h3>Headline</h3>
            <span class="prec">from</span> 
            <span class="price">1</span>
        </a>
   </li>
</ul>

そして、[保存] をクリックすると、次のようにフォーマットされます。

<ul class="active">
    <li>
        <a href="#"><img align="" alt="" border="0" src="/media/1.png" /> </a>
        <h3>
            <a href="#">Headline</a></h3>
        <a href="#"><span class="prec">from</span> <span class="price">1</span> </a></li>
</ul>

コードの再フォーマットを完全に無効にすることはできますか? また、他のいくつかの HTML コードも変更します (ページ上のフラッシュなど)。

誰かアドバイスをくれませんか?

4

2 に答える 2

0

HTML 出力のフォーマットに関するドキュメントがあります。CKEDITOR.htmlWriterソース HTML の書き込みを処理します。そのオプションはドキュメントにまとめられています。たとえば、次の<a>ように内部でブレークを有効にすることができます。

writer.setRules( 'a', {breakAfterOpen : true, breakBeforeClose: true} );

そうすれば、少なくともアンカー内のすべてを 1 行に収めないようにエディターを取得できるはずです。

ただし、次のようなものを探していると思いますがsourceFormatting: none、これが存在するとは思えません。エディターは、検証とその WYSIWYG 機能のために HTML を解析する必要があるため、保存時に常に評価され、フォーマットなしで保存され、ソース ウィンドウが開いたときに再書き込みされるようです。

別の質問ではprotectedSource、CKEditor を HTML から遠ざけるために(誤用) 使用しようとする人がいますが、私はそれを試しませんでした。

于 2012-07-29T17:36:08.013 に答える
0

問題の一部は、入力 HTML が無効であることです。<h3>ブロックレベルの要素です。のようなインライン要素内には表示できません<a>。ブラウザーはこの無効な HTML を表示できないため、(<a>タグを複製することによって) 有効になるように再フォーマットし、CKEditor はただ乗っているだけです。

空白と改行の周りに少し余分な再フォーマットが行われていますが、あなたが見ている変更のほとんどはこの構文上の問題に関連しています.

于 2012-07-29T17:41:48.360 に答える