Почитав статьи о создании собственных WYSIWYG-редакторов для админ-панелей,
я предположил, что для JavaScript просто-напросто не существует никакой каретки
внутри полей ввода, потому он не может с ней работать и решение таких элементарных на первый взгляд задачи, как окружение каретки чем-либо, перемещение каретки на нужную позицию, регистрация текущей позиции каретки и т. д. достигается рулонами нечитаемого кода. Верно ли, что JavaScript не видит каретки в браузере?
Обновление (перенесено из комментария)
Информация из всех образовавшихся в комментариях обсуждений, безусловно, пригодится, но я вернусь к основной теме. Спрошу так: вот есть курсор внутри поля ввода и есть JavaScript. Какова причина, по которой в нативном JavaScript отсутствует средства для работы с кареткой типа getCaretPosition(), moveCaretToPosition(), getTextAfterCaret() и т. д.? Наверняка это не лень разработчиков, а какие-то трудности взаимодействия JavaScript с браузером.
Ответ
Объект Selection представляет диапазон текста выделенный пользователем или текущую позицию курсора (каретки).
Этот объект не является частью JavaScript, он реализуется браузером.
Для управления курсором в TextArea есть следующие поля:
selectionStart Возвращает/задаёт индекс начала выделенного текста. Если нет выделенного текста, возвращает индекс символа следующего за курсором.
selectionEnd Возвращает/задаёт индекс окончания выделенного текста. Если нет выделенного текста, возвращает индекс символа следующего за курсором.
Комментариев нет:
Отправить комментарий