При написании плагина столкнулся с тем, что в момент нажатия кнопки в тулзах, редактор терял фокус ввода.
Поведение верное, но пользователю не удобно — нужно курсор возвращать на место «вручную».
Вернуть фокус можно так:
|
|
editor.editing.view.focus(); |
Объект editor доступен как свойство практически во всех сущностях CKE5.
Возможно, что после манипуляций с моделью, фокус требуется установить в какое то конкретное место.
Для этого нужно задать выделение в документе. В терминологии DOM выделение может быть пустым, т.е. это может быть просто позиция курсора в документе, что нам и нужно.
Например, установим курсор в начало документа, а затем вернем редактору фокус.
|
|
editor.model.change((writer) => { // Получаем позицию в самом начале документа const range = writer.createRange( writer.createPositionAt( editor.model.document.getRoot(), 0 ); ); // Устанавливаем курсор в начало writer.setSelection(range); }); // Фокусируем редактор editor.editing.view.focus(); |
ckeditor
Данная запись опубликована в 23.03.2025 00:58 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Апрель 11, 2025 г.
В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...
Читать
Апрель 7, 2025 г.
Плагин DataFilter позволяет управлять фильтрацией HTML тегов. Он является "родным" для CKE плагином, так что ничего дополнительно устанавливать не нужно. Рассмотрим как им можно управлять на уровне кастомного плагина.
Допустим, вы хотите разрешить ...
Читать
Март 25, 2025 г.
Продолжаю публиковать сниппеты, связанные с экосистемой CKEditor 5. Сегодня покажу как удалять контейнер с сохранением его содержимого.
Api предоставляет функцию writer.unwrap(element). Но беда в том, что функция не заботится о валидности дочерних ...
Читать
Апрель 9, 2025 г.
Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела.
Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+.
Нам понадобится ...
Читать