2016-05-21 5 views

ответ

0

Установка позиции курсора в редактируемых материалах является сложной задачей.
Обработка курсора зависит от браузера. Есть диапазон и выбор apis, которые совершенно несовместимы с различными браузерами.

Это как играть с курсорами:

Создание объекта диапазона по document.createRange()
выбрать указанную позицию методами диапазона (см АНИ)
Получить выбор объекта по selection=window.getSelection()
удалить все существующий выбор по selection.removeAllRanges();
Добавить диапазон к выбору на selection.addRange(range);

В этом случае текстового содержимого в элементе абзаца нет, поэтому вы не можете поместить курсор внутри него. Вы можете либо выбрать узел на range.selectNode, либо вы можете поместить курсор до/после элемента. Размещение курсора до или после будет вести себя странно в разных браузерах, особенно в случаях с краем (например, в пустом div или в первом или последнем посте).

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

+0

относительно логики, которую я хочу выполнить, см. Это http://stackoverflow.com/questions/37365253/preserve-at-leaste-one-p-element-inside-contenteditable?noredirect1_comment62245775_37365253 – medBo

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