3

CKEditor がデータを送信するときに完全な HTML タグをフィルタリングすることに関する多くの投稿を見つけました (例: SCRIPT、STYLE などの削除)。フィルタリングする必要があるのは特定の属性ですが、元のタグはそのままにしておきます。

たとえば、ユーザーが P、DIV、または SPAN タグを持つデータを送信した場合は問題ありませんが、STYLE 属性を持つ P、DIV、または SPAN を送信した場合は、STYLE 属性を削除する必要があります。

私はこれを見つけることができないようですが、洞察力のある人なら誰でも利用できます。

4

1 に答える 1

5

あなたの問題には2つの解決策があります:

  1. (推奨) Advanced Content Filter (ACF) (4.1 以降):

    CKEDITOR.replace( 'editor1', {
        allowedContent: 'span div p[id,class]; h1 a img hr table tr td ul ol li[*]{*}(*)'
    } );
    

    ACF を使用すると、エディターが受け入れる (作成する) タグ、属性、クラス、およびスタイルを正確に指定できます。ルールの詳細を参照してください。また、最新の 4.1 ビルドをダウンロードして、公式の Advanced Content Filter サンプルを試してみてください。

  2. 2 番目のオプションはdataProcessor(3.x、4.x) です。

    editor.dataProcessor.htmlFilter.addRules( {
        elements: {
            $: function( element ) { // you can specify p, div etc. here instead of $ (wildcard)
                if ( element.attributes.style ) {
                     console.log( 'Nuke style attr on' element );
                     delete element.attributes.style;
                }
            }
        }
    });
    
于 2013-03-30T15:36:40.010 に答える