12

<textarea>の には、次のテキストがあります。

<table class='table table-striped'>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>

を使用した後CKEDITOR.replace()、私のテキスト領域は CKEditor になり、その中にテーブルがあります。問題は、CKEditor がそのクラスを という名前のテーブルに追加することcke_show_borderです。そのクラスの属性のみがテーブルに適用され、私のクラスは適用されません。

tableそれを私のtable-stripedクラスに適用するにはどうすればよいですか?

ご協力いただきありがとうございます。

4

8 に答える 8

9

Drupal 7 で CKEditor 7.x.1.13 を開いて保存すると、HTML 要素の属性が削除されるという同様の問題がありました。「カスタム JavaScript 構成」の下に以下を追加すると、修正されました。

config.allowedContent = true;
于 2014-01-06T19:06:16.573 に答える
4

解決策を見つけました。

これによりフィルタリングがオフになり、機能していますが、良い考えではありません...

config.allowedContent = true;

クラスとスタイルのフィルタリングには () と {} があるため、コンテンツ文字列で遊ぶことは id などではうまくいきますが、クラスとスタイルの属性ではうまくいきません。

したがって、エディターで任意のクラスを許可するための私の賭けは次のとおりです。

config.extraAllowedContent = '*(*)';

これにより、任意のクラスと任意のインライン スタイルが許可されます。

config.extraAllowedContent = '*(*);*{*}';

タグに対して class="asdf1" および class="asdf2" のみを許可するには:

config.extraAllowedContent = '*(asdf1,asdf2)';

(そのため、クラス名を指定する必要があります)

p タグに対してのみ class="asdf" のみを許可するには:

config.extraAllowedContent = 'p(asdf)';

タグの id 属性を許可するには:

config.extraAllowedContent = '*[id]';

などなど

スタイルタグ (<style type="text/css">...</style>) を許可するには:

config.extraAllowedContent = 'style';

もう少し複雑にするには:

config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';

それがより良い解決策であることを願っています...

于 2014-08-07T13:00:47.327 に答える
1

これは、独自の CSS スタイルで CKeditor 4.0 以降のバージョンを使用するための完璧な例です。

  <script src="//cdn.ckeditor.com/4.5.9/standard-all/ckeditor.js"></script>



     var editor = CKEDITOR.replace("textarea", {
                        width: 750, height: 500, fullPage: true,
                        extraPlugins: 'stylesheetparser',

                        //// Do not load the default Styles configuration.
                        stylesSet: [],
                        on: {
                            instanceReady: function (evt) {
                            // Remove ckeditor table border
                            $("iframe").contents().find('body').removeClass('cke_show_borders');
                          }
                       }

                    });
于 2016-07-12T19:41:24.700 に答える
0

テーブルに border=1 を追加すると、CKEditor がテーブルに独自のクラスを設定しなくなります (他にも方法があるかもしれませんが、CKEditor を変更する必要がないため、これがより簡単であることがわかりました)。

于 2013-07-24T14:04:14.627 に答える