Установить позицию курсора сразу после вставленного элемента в contentEditable div

Похож на него, не может быть выполнен компактный. Необходимо считать все задания, или сделать SqlReader и просто считать первый.

27
задан Elie 29 January 2011 в 02:50
поделиться

1 ответ

Если вы вставляете пустой div, p или span, я считаю, что во вновь созданном элементе должно быть «что-то», чтобы захватить диапазон - и чтобы поместить туда курсор.

Вот мой взлом, который, кажется, работает нормально в Chrome. Идея состоит в том, чтобы просто поместить временную строку внутри элемента, а затем удалить ее, когда каретка окажется там.

// Get the selection and range
var idoc = document; // (In my case it's an iframe document)
var sel = idoc.getSelection();
var range = sel.getRangeAt(0);

// Create a node to insert
var p = idoc.createElement("p"); // Could be a div, span or whatever

// Add "something" to the node.
var temp = idoc.createTextNode("anything");
p.appendChild(temp);
// -- or --
//p.innerHTML = "anything";

// Do the magic (what rangy showed above)
range.collapse(false);
range.insertNode( p );
range = range.cloneRange();
range.selectNodeContents(p);
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);

// Clear the non
p.removeChild(p.firstChild);
// -- or --
//p.innerHTML = "";
1
ответ дан 28 November 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: