Как установить выделение в CKEditor5? - PullRequest
0 голосов
/ 12 октября 2018

После настройки текста в редакторе, мне нужно установить фокус на конец текста.Как это сделать?Я не могу понять

editor.setData('text');
editor.editing.view.focus(); // focus to set the beginning, but on the end

Пример: https://jsfiddle.net/ogm5s6k7/1/

// Editor configuration.
ClassicEditor
  .create( document.querySelector( '#editor' ))
  .then( editor => {
  window.editor = editor;
})
  .catch( error => {
  console.error( error );
});

document.getElementById('focusSet').onclick = function(e) {
  window.editor.setData('text');
  window.editor.editing.view.focus();
};
<script src="https://cdn.ckeditor.com/ckeditor5/11.1.0/classic/ckeditor.js"></script>
<div id="editor">
  <p>Editor content goes here.</p>
</div>
<br>
<button id="focusSet">Focus</button>

1 Ответ

0 голосов
/ 15 октября 2018

Чтобы установить выделение в CKE5, вам нужно сделать это в «блоке изменений», где у вас есть доступ к устройству записи:

editor.model.change( writer => {
    writer.setSelection( ... );
} );

Есть несколько способов установить выделение, см. Документы:https://ckeditor.com/docs/ckeditor5/latest/api/module_engine_model_writer-Writer.html#function-setSelection

В основном, вам нужно немного справки при выборе настроек.Например, если вы хотите установить его после данного узла модели, вам нужна ссылка на этот узел, а затем вы можете использовать его следующим образом:

writer.setSelection( myNode, 'after' );

Если вы хотите установить его в концесодержание вы можете использовать в корне документа:

writer.setSelection( editor.model.document.getRoot(), 'end' );
...