すべてのhtmlタグを許可しようとしています
<div> <p> <span> <i> /* etc */
以下のようなHTML属性(クラス、ID):
<div id="foo" class="bar" style="z-index:1;">SOME COOL CONTENT HERE</div>
ckeditorで。
Docs.ckeditor.comのようなものを見つけました
config.allowedContent = {
$1: {
// Use the ability to specify elements as an object.
elements: CKEDITOR.dtd,
attributes: true,
styles: true,
classes: true
}
};
config.disallowedContent = 'script; *[on*]';
ckeditorのルートフォルダのconfig.js
に追加しました。しかし、何も変わっていません。 ckeditorのソースコードブロックにhtmlタグを追加しようとすると、htmlコンテンツがすべて消去されます。
何が欠けていますか?前もって感謝します。
バージョン:## CKEditor 4.4.7
編集および更新:
@Eelkeと@Necreauxが答えた後、config.jsにallowedContent = true
を追加しました。 <div> <span> <h3>
などの基本的なHTML要素が完全に機能するようになりました。しかし、ckeditorはまだ<i>
タグをストライピングしています。
JSを完全に構成する
CKEDITOR.editorConfig = function( config ) {
config.allowedContent = true;
config.removeFormatAttributes = '';
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for two toolbar rows.
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'others' },
'/',
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'about' }
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Underline,Subscript,Superscript';
// Set the most common block elements.
config.format_tags = 'p;h1;h2;h3;pre;';
// Simplify the dialog windows.
config.removeDialogTabs = 'image:advanced;link:advanced';
};
最初の理由は、コンテンツに関係なく一部の要素、属性、スタイル、およびクラスが削除される理由です。これは Advanced Content Filter が原因です。設定を変更する方法の詳細については、この質問を参照してください。 CKEditorは自動的にdivからクラスを削除します
別のことは、空のインライン要素が許可されているかどうかに関係なく削除される理由です。この質問もすでに質問されています- CKEditor strips <i> Tag を参照してください。
すべて許可されている場合は、allowedContent = true
以下を試しましたか?
config.allowedContent = true;
config.removeFormatAttributes = '';
これらは、空のときにCKEditor 4が削除するタグです。
abbr、頭字語、b、bdi、bdo、big、cite、code、del、dfn、em、font、i、ins、label、kbd、mark、meter、output、q、Ruby、s、samp、small、span、ストライク、ストロング、サブ、sup、時間、tt、u、var
すべての空のタグを許可するには-これをconfig.jsに追加してください:
for(var tag in CKEDITOR.dtd.$removeEmpty){
CKEDITOR.dtd.$removeEmpty[tag] = false;
}
これを試してみましたか?
<script>
CKEDITOR.replace( 'text-area-id' );
CKEDITOR.config.allowedContent = true;
</script>
CKEditor 4の回答。
古いバージョンのCKEditorおよびこのタイプの構成は使用しないでください。
構成にconfig.allowedContent = true;
を追加するだけです。すべてのタグが許可されます。