При написании плагина столкнулся с тем, что в момент нажатия кнопки в тулзах, редактор терял фокус ввода.
Поведение верное, но пользователю не удобно — нужно курсор возвращать на место «вручную».
Вернуть фокус можно так:
|
|
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 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Декабрь 20, 2014 г.
Как подключить CKeditor к Drupal 7 я рассказывал ранее.
После настройки модуль подключит редактор CKeditor к полям редактирования публикаций. А как подключить wysiwyg к собственным формам? В 6-й версии Drupal редактор с помощью модуля CKeditor подключался ...
Читать
Март 20, 2025 г.
Делюсь примером кода, для создания обертки в модели экосистемы CKEditor 5.
Здесь есть несколько нюансов.
Во-первых, нужно проверить, являются ли оборачиваемые элементы валидными по отношению к обертке, в которую мы их помещаем. У CKE элементов ...
Читать
Март 25, 2025 г.
Продолжаю публиковать сниппеты, связанные с экосистемой CKEditor 5. Сегодня покажу как удалять контейнер с сохранением его содержимого.
Api предоставляет функцию writer.unwrap(element). Но беда в том, что функция не заботится о валидности дочерних ...
Читать
Февраль 3, 2025 г.
Пример работы в экосистеме CKE5. Реализуем в нашем плагине обработку изменения данных в модели редактора. При удалении всего текста в инлайновом элементе, удалим сам inline контейнер.
Зацепку поместим в init секцию плагина.
[crayon-6ab0314a625a4698072665/] ...
Читать