У меня есть тег 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();
Но этот код находит позицию выделенного текста относительно начала текущего представления в браузере.,Следовательно, курсор остается в той же позиции, но текст перемещается вниз.
Ожидается, что курсор останется на выделенном тексте.