Я хочу выбрать конкретный текст в CKEditor. Я использовал следующее:Выберите диапазон текста в CKEditor из javascript
var sel = editor.getSelection();
var element = sel.root;
console.log(element);
sel.selectElement(element);
var findString = 'foobar';
var ranges = editor.getSelection().getRanges();
var startIndex = element.getHtml().indexOf(findString);
if (startIndex != -1) {
ranges[0].setStart(element.getFirst(), startIndex);
console.log(element.getFirst() +" - "+ startIndex);
console.log(element.getFirst() +" - "+ startIndex + findString.length);
ranges[0].setEnd(element.getFirst(), startIndex + findString.length);
sel.selectRanges([ranges[0]]);
}
Это прекрасно работает, если это простой текст без разрыва строки. Если текст, который я хочу, чтобы выбрать после второй строки или отформатирован, я получаю следующее сообщение об ошибке:
Uncaught Error: IndexSizeError: DOM Exception 1
Что идет не так?
Большое спасибо, но это не исправило мою проблему. Я работаю над автозаполнением, я смог получить текст перед курсором. Я хочу выбрать текст, чтобы я мог заменить его новым текстом. ** Итак, как я могу выбрать текст перед курсором ** – sathees
oleq: How Можно ли применить стиль к выбранным элементам? Я использую ваш код и когда я пытаюсь применить стиль, например. 'editor.execCommand ('bold');' для выбранных элементов после 'selection.selectRanges (диапазоны);' строка Я получаю исключение: ** Uncaught IndexSizeError: индекс или размер был отрицательным или больше допустимого значения. ** –