Как разрешить все html-теги и атрибуты с помощью CKeditor?

Я пытаюсь разрешить все теги 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*]';

и добавил его в config.js в корневую папку ckeditor. Но ничего не изменилось. Когда я пытаюсь добавить некоторые html-теги в блоке исходного кода ckeditor, он удаляет все содержимое html.

Что мне не хватает? Заранее спасибо.

Версия: ## CKEditor 4.4.7


EDIT & UPDATE:

После ответов @Eelke и @Necreaux я добавил allowedContent = true в свой config.js. Теперь основные элементы html, такие как <div> <span> <h3> работают отлично. Но 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';
};

Ответы

Ответ 1

Во-первых, почему некоторые элементы, атрибуты, стили и классы удаляются независимо от их содержимого. Это вызвано расширенным фильтром содержимого. См. Этот вопрос для получения дополнительной информации о том, как изменить его настройки: CKEditor автоматически разбивает классы из div

Другое дело, почему пустые встроенные элементы удаляются независимо от того, разрешены они или нет. Этот вопрос также был задан - см. CKEditor strip <i> Tag - отметьте там еще один хороший ответ.

Ответ 2

Если все разрешено, вы можете использовать allowedContent = true

Ответ 3

Вы пробовали следующее?

config.allowedContent = true;
config.removeFormatAttributes = '';

Ответ 4

это теги, которые CKEditor 4 удаляет, когда пуст:

abbr, acronym, b, bdi, bdo, big, cite, code, del, dfn, em, font, i, ins, label, kbd, mark, meter, output, q, ruby, s, samp, small, span, забастовка, сильная, суб, суп, время, tt, u, var

чтобы разрешить все пустые теги - попробуйте добавить это в config.js:

for(var tag in CKEDITOR.dtd.$removeEmpty){
    CKEDITOR.dtd.$removeEmpty[tag] = false;
}

Ответ 5

Вы пробовали это?

<script>
        CKEDITOR.replace( 'text-area-id' );
        CKEDITOR.config.allowedContent = true;
</script>