Ckeditor удаляет пустые теги

Есть проблема с CKEditor, когда пользователь вставляет пустые теги:

(в режиме исходного кода HTML)

<a href="fds" class="doIt"></a>

Когда он нажимает на источник, а затем снова, тег «А» исчезает. Я провел небольшое исследование и обнаружил, что это происходит из-за того, что в ckeditor.js есть очень сложная функция, которая проверяет, есть ли значение внутри элемента. Если его нет, CKEditor удаляет тег.


person Roy    schedule 02.08.2012    source источник
comment
Пробовали удалить функцию?   -  person Waleed Khan    schedule 02.08.2012
comment
Это создает хаос в моем коде, поскольку некоторые из моих так называемых пустых элементов div на самом деле имеют фоновые изображения, но CKEditor все равно и удаляет их, тем не менее...   -  person Stefan    schedule 28.11.2018


Ответы (4)


Я нашел решение для этой конкретной проблемы, с которой я столкнулся, с тегом

Исходный ответ, который я получил от ленты CKEditor ‹i› Tag

Исправление или настройка (вы называете это) для этого заключается в том, чтобы установить следующее в ckeditors config.js:

// ALLOW <i></i>
config.protectedSource.push( /<i[\s\S]*?\>/g ); //allows beginning <i> tag
config.protectedSource.push( /<\/i[\s\S]*?\>/g ); //allows ending </i> tag
person Mike Brake    schedule 02.09.2013

Я знаю, что это старо, но в CKEDITOR 4.x вы можете сделать:

CKEDITOR.dtd.$removeEmpty.ElementHere = 0;

Замените ElementHere любым тегом, который вы хотите. Например, разрешить пустые теги i для значков:

CKEDITOR.dtd.$removeEmpty.i = 0;
person Mauricio    schedule 27.03.2018

Если это ни на что не влияет, попробуйте добавить &nbsp; в свой тег A. ckeditor проверяет, очищает и очищает html. Очевидно, ему не нравятся пустые теги привязки.

person kasdega    schedule 02.08.2012
comment
да, но у меня есть какое-то решение, которое он будет добавлять автоматически, а не вручную, это мне не поможет - person Roy; 02.08.2012
comment
Мне нужно какое-то решение, которое будет добавляться автоматически, а не вручную, это мне не поможет - person Roy; 02.08.2012
comment
Не особенно полезный ответ. - person Chris Haines; 11.12.2013

Попробуйте добавить эту строку в файл config.js:

CKEDITOR.config.allowedContent = true;

Надеюсь это поможет

person Matthew Shine    schedule 02.09.2013
comment
Нет, это новый параметр, введенный в версии 4.1 для отключения ACF, но он не связан с пустыми тегами. - person AlfonsoML; 02.09.2013
comment
Это не помогает дружище, Речь конкретно о пустых дивах, а не о автоматической фильтрации содержимого ckeditor, которая была бы уже отключена. - person stephen; 11.04.2014