Подтвердить что ты не робот

CKEditor разбивает встроенные атрибуты

Я использовал CKEditor в течение некоторого времени, и он отлично поработал. Я в значительной степени избавился от любых проблем, которые у меня были, но этот, по-моему, не понял. Когда я добавляю встроенные атрибуты к элементам, например style = "color: #ff0;" в теге <p></p>, они удаляются, когда я переключаюсь с wysiwyg на исходный вид. Никакой сохранения или подачи не сделано, и ckeditor добавлен на мой сайт, который является моим собственным script. Любые идеи относительно того, что вызовет это. Все результаты поиска, которые я могу найти, соответствуют тому, что происходит в Drupal, но Drupal кажется проблемой не редактором во всех случаях. Еще раз спасибо!

4b9b3361

Ответ 2

Для всех, кто ищет простой пример того, как включить дополнительную разметку в CKEditor без полного отключения ACF, вот краткий фрагмент:

CKEDITOR.replace( 'editor1', {
    extraAllowedContent: 'style;*[id,rel](*){*}'
} );

extraAllowedContent здесь включает элемент <style>, допускает наличие двух дополнительных атрибутов (в квадратных скобках) для всех (* является подстановочным знаком) уже допустимые элементы, позволяет использовать для них любые имена классов (*) и позволяет использовать любые встроенные стили {*}

Ответ 3

Привет, вы можете легко остановить ACF. по умолчанию ваша конфигурация ---

function ckeditor($name,$value='',$height=300){
    return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{});});</script>';
} 

просто добавьте это в фигурные скобки:

allowedContent: true

теперь ваша конфигурация будет:

function ckeditor($name,$value='',$height=300){
    return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{allowedContent: true});});</script>';
}

Ответ 4

Я столкнулся с той же проблемой, и ниже ответ решил мою проблему:

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

Ответ 5

У меня была та же проблема, что ck удалял не только некоторые атрибуты, но и целые элементы при вставке элемента блока внутри элемента блока (div с некоторыми атрибутами, вставленными внутри p) при использовании этого метода:

editor.insertHtml(html);

в чем проблема: вместо этого использовалось это обходное решение:

editor.insertElement(CKEDITOR.dom.element.createFromHtml(html));