ckEditor удаляет <br>, когда <br>появляется непосредственно перед <audio> - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю над проектом, в котором пользователь должен иметь возможность вставить короткий текст и аудиоплеер во встроенный ckEditor и сохранить его.Добавление аудио работает нормально, но при сохранении или обновлении страницы <br> непосредственно перед удалением <audio>.Добавление любого текста между двумя элементами предотвращает удаление <br>.

На данный момент я обнаружил, что <br> удаляется htmlDataProcessor.toHtml, когда ckEditor вызывает editor.setData.

. Я хочу знать, почему редактор удаляет<br> и как мне этого избежать.

Ниже я добавил фрагмент, который показывает то же поведение, что и редактор в моем проекте.

CKEDITOR.inline('editor1', {
  enterMode: CKEDITOR.ENTER_BR,
  allowedContent: true
});
div {
  border-style: solid;
  min-height: 100px;
  padding: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.11.2/ckeditor.js"></script>
<script>
  CKEDITOR.disableAutoInline = true;
</script>
<div contenteditable="true" id="editor1">Text <br> <audio controls></div>

Заранее спасибо!

1 Ответ

0 голосов
/ 14 февраля 2019

добавить extraAllowedContent:'audio;*(*);*{*}' это позволит вам вставить аудио тег в ваш редактор.

CKEDITOR.disableAutoInline = true;


CKEDITOR.inline('editor1', {
  enterMode: CKEDITOR.ENTER_BR,
  allowedContent: true,
  extraAllowedContent:'audio;*(*);*{*}'
});
div {
  border-style: solid;
  min-height: 100px;
  padding: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.11.2/ckeditor.js"></script>

<div contenteditable="true" id="editor1">Text <br> <audio controls></div>
...