CKEditor предотвращает удаление атрибута id

в CKEditor я пытаюсь предотвратить удаление атрибута id из тегов html, например:

<p id='hello'>Hello</p>

но эта конфигурация ckeditor не работает, и я не могу найти другого решения этой проблемы.

<script>
    $(function () {
        CKEDITOR.replace('description', {
            allowedContent: true,
            autoGrow_onStartup: true,
            extraAllowedContent: '*[id]',
        });
    });
</script>

не могли бы вы помочь мне решить эту проблему?


person DolDurma    schedule 28.05.2018    source источник


Ответы (1)


Прежде всего, использование allowedContent: true и extraAllowedContent: '*[id]' не имеет смысла. Первый вариант отключает ACF, разрешая все, а второй расширяет его. Нет смысла разрешать лишний контент, если все уже разрешено. Вы должны использовать один из этих двух вариантов в зависимости от того, хотите ли вы включить ACF или нет.

Вставка HTML, например <p id='hello'>Hello</p>, в исходный режим, а затем переключение на wysiwyg и обратно в исходный код сохранит атрибут id нетронутым (также с вашей текущей конфигурацией), вы не получите того же результата при копировании/вставке такого элемента. Пожалуйста, помните, что в соответствии со спецификацией HTML атрибут id должен быть уникальным, поэтому вы не можете иметь кучу <p id='hello'>Hello</p> внутри области содержимого редактора (документа). В таком случае редактор автоматически удаляет атрибут id, чтобы он не дублировался и его нельзя было отключить.

Если вы хотите идентифицировать элементы на основе одного и того же id, я бы предпочел вместо этого использовать атрибуты data-* или классы CSS (они не будут удалены во время копирования/вставки). Если вам нужно, чтобы каждый элемент имел id, вы можете использовать paste обработчик события, в котором вы просто можете проверить, имеет ли элемент в вставленных данных атрибут id, и добавить к нему какое-то случайное значение, если это не так.

person j.swiderski    schedule 29.05.2018
comment
я пытаюсь сделать простые внутренние ссылки из контента - person DolDurma; 30.05.2018
comment
Пожалуйста, предоставьте более подробное и техническое описание того, что вы пытаетесь сделать, поскольку вышеизложенное не очень помогает. Это также не меняет того факта, что id должен быть уникальным для всего документа, поэтому вы не можете просто копировать/вставлять кучу элементов с одним и тем же id в CKEditor. - person j.swiderski; 01.06.2018