Страницы

Поиск по вопросам

вторник, 23 октября 2018 г.

Чем является каретка для JavaScript?

Почитав статьи о создании собственных WYSIWYG-редакторов для админ-панелей, я предположил, что для JavaScript просто-напросто не существует никакой каретки внутри полей ввода, потому он не может с ней работать и решение таких элементарных на первый взгляд задачи, как окружение каретки чем-либо, перемещение каретки на нужную позицию, регистрация текущей позиции каретки и т. д. достигается рулонами нечитаемого кода. Верно ли, что JavaScript не видит каретки в браузере?

Обновление (перенесено из комментария)
Информация из всех образовавшихся в комментариях обсуждений, безусловно, пригодится, но я вернусь к основной теме. Спрошу так: вот есть курсор внутри поля ввода и есть JavaScript. Какова причина, по которой в нативном JavaScript отсутствует средства для работы с кареткой типа getCaretPosition(), moveCaretToPosition(), getTextAfterCaret() и т. д.? Наверняка это не лень разработчиков, а какие-то трудности взаимодействия JavaScript с браузером.


Ответ

Объект Selection представляет диапазон текста выделенный пользователем или текущую позицию курсора (каретки).
Этот объект не является частью JavaScript, он реализуется браузером.
Для управления курсором в TextArea есть следующие поля:
selectionStart Возвращает/задаёт индекс начала выделенного текста. Если нет выделенного текста, возвращает индекс символа следующего за курсором. selectionEnd Возвращает/задаёт индекс окончания выделенного текста. Если нет выделенного текста, возвращает индекс символа следующего за курсором.

Комментариев нет:

Отправить комментарий