Подтвердить что ты не робот

Как найти местоположение курсора (X/Y, а не строку/столбец) в текстовом поле HTML?

Я хочу отобразить раскрывающийся список в <textarea>, чтобы помочь пользователю ввести некоторые вещи. Вы знаете это из текущих IDE как завершение кода. Когда вы начнете вводить что-то, всплывающее окно появится справа от текущего местоположения курсора/каретки, и вы можете перемещаться по нему с помощью клавиш со стрелками, чтобы завершить ввод текста.

Я знаю как получить позицию курсора в текстовой строке (т.е. индекс символа позиции курсора), но я не знаю, как получить X/Y координаты (что-то вроде offsetWidth и offsetHeight) курсора внутри элемента <textarea>, чтобы я мог расположить элемент списка. Возможно ли это в HTML/JavaScript и как это работает?

4b9b3361

Ответ 1

С редактируемым вводом html (в iframe, например CKeditor или Rich Text Editor или даже лучше: jsfiddle) вы можете вставить пустой элемент span в позицию каретки и получить позицию этого элемента, чтобы отобразить выпадающий список.

Это может показаться сложным, но я не могу придумать другого способа сделать это.

У него есть дополнительные возможности при использовании для редактора кода, вы можете кодировать текст и формат кода, например, jsfiddle, и, возможно, даже создавать какой-то код-автозаполнение для ключевых слов и т.д.