2015-12-12 3 views
1

Я использую Froala 2, и в документации нет ничего, что подразумевало бы простой способ установить местоположение каретки, не говоря уже о начале или конец. Я пытаюсь засеять экземпляр редактора небольшим количеством содержимого в определенных случаях, и когда я использую html.set, каретка остается там, где он находится в начале, и я хочу переместить его до конца. У Интернета нет ничего полезного для v2.Установите каретку в конце содержимого в Froala 2

ответ

2

поддержка Froala при условии ответа для меня, что работает:

var editor = $('#edit').data('froala.editor'); 
editor.selection.setAtEnd(editor.$el.get(0)); 
editor.selection.restore(); 
+0

Этот ответ верный, однако то, что меня подстегнуло, - это редактор, который уже должен быть сфокусирован, чтобы он работал. Если вы хотите принудительно сфокусироваться на редакторе перед вызовом этого вызова 'editor.events.focus()'. – jpcamara

1

Насколько я знаю, Froala 2 не предоставляет API для этого, но вы можете использовать собственный JavaScript Selection API.

Этот код должен делать эту работу:

// Selects the contenteditable element. You may have to change the selector. 
var element = document.querySelector("#froala-editor .fr-element"); 
// Selects the last and the deepest child of the element. 
while (element.lastChild) { 
    element = element.lastChild; 
} 

// Gets length of the element's content. 
var textLength = element.textContent.length; 

var range = document.createRange(); 
var selection = window.getSelection(); 

// Sets selection position to the end of the element. 
range.setStart(element, textLength); 
range.setEnd(element, textLength); 
// Removes other selection ranges. 
selection.removeAllRanges(); 
// Adds the range to the selection. 
selection.addRange(range); 

Смотрите также:

Смежные вопросы