0

バックエンドで htmLawed を使用して、不適切な JS/CSS/HTML がデータベースに侵入するのを防いでいるため、CKEditor での HTML 4 準拠を探しています。ここまでで、"style" 属性を持つ HTML 要素をすべて削除するように htmLawed を設定しました。これは、私の構成で例示されているように、コアスタイルとフォントサイズ/色で完全に機能します:

    coreStyles_bold      : { element: 'b' },
    coreStyles_italic    : { element: 'i' },
    coreStyles_underline : { element: 'u' },
    coreStyles_strike    : { element: 'strike' },
    fontSize_style       :
    {
        element    : 'font',
        attributes : { 'size': '#(size)' }
    },
    colorButton_foreStyle :
    {
        element    : 'font',
        attributes : { 'color': '#(color)' }
    },
    colorButton_backStyle:
    {
        element : 'font',
        styles  : { 'background-color': '#(color)' }
    }

私が抱えている問題は、インデントにあります。インデントしようとするリスト要素 (「ul」や「ol」など) がある場合、CKEditor は以下に示すように HTML をレンダリングし、サーバーに送信します。次に、HtmLawed は ul 要素から style 属性を取り除き、リストをフロント エンドに表示するときにインデントされないようにレンダリングします。

<ul style="margin-left: 40px;">
<li>Some Text Here</li>
</ul>

私の質問は...どうすればすべての要素があらゆる種類のスタイル属性を設定できないようにするのですか? 限られた書式設定オプションしか許可されていないため、CKEditor で純粋な HTML を使用して書式設定を行うことを希望します。次のような CKEditor によって生成された HTML を見たいと思います。

<ul>
    <ul>
        <li>Some Text Here</li>
    </ul>
</ul>
4

1 に答える 1

1

2 つの別個の事柄があります。インデント プラグインは、ブロックではなく、リストのみをインデットできる (構造を変更し、左マージンを追加しない) 必要があります。現時点では、1 つのプラグインが 2 つのジョブを実行しているため、意味がありません。このパッチは、約 1 か月後にリリースされます - https://dev.ckeditor.com/ticket/10027

ただし、スタイルではなくクラスを使用するようにインデントを構成することは今でも可能です -config.indentClassesオプションを参照してください。

于 2013-06-21T06:07:02.673 に答える