Установить позицию курсора для выделенного текста в contenteditable div - PullRequest
0 голосов
/ 07 июля 2011

У меня есть тег div, который является contenteditable, так что пользователи могут вводить div.Если пользователь выбирает какой-либо текст, чтобы сделать его жирным, выполняется следующий код:

browser.execute("document.execCommand(\"Bold\"); 
document.getElementById(\"EditDIV\").focus()");  

После выполнения фокус теряется, и вертикальная полоса прокрутки в браузере перемещается в верхнюю часть браузера.Я хочу, чтобы курсор оставался в тексте, где он был раньше.

Я попробовал следующее:

Сохранить позицию выбора x, y:

Код:

cursorPos=document.selection.createRange().duplicate(); clickx = cursorPos.getBoundingClientRect().left; clicky = cursorPos.getBoundingClientRect().top;

Восстановить позицию выбора:

Код:

cursorPos = document.body.createTextRange(); cursorPos.moveToPoint(clickx, clicky); cursorPos.select();

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

Ожидается, что курсор останется на выделенном тексте.

...