Я хочу, чтобы получить выделенную позицию текста с помощью JavaScript. Например, у
меня есть простая текстовая область.
#input-text {
resize: none;
width: 50%;
height: 50px;
margin: 1rem auto;
}
<textarea id="input-text">I am a student and I want to become a good person</textarea>
В моей текстовой области у меня есть текст, такой как:
"I am a student and I want to become a good person"
Из этой строки, если я выберу «стать хорошим человеком» из текстовой области, то
Как я могу получить выбранную позицию текста / строки в JavaScript?
Здесь выбранный символ строки начинается с 29 и заканчивается 49. Таким образом, начальная позиция равна 29, а конечная позиция равна 49
javascript
html
Md. Tahazzot
источник
источник
Ответы:
Это будет работать для выделения текста с помощью мыши и клавиатуры для всех элементов textarea на странице. Обязательно либо измените селектор и будьте более конкретны там, и читайте комментарии, если вы не хотите / не нуждаетесь в выборе клавиатуры.
источник
Я бы использовал событие onselect, чтобы получить то же самое.
источник
источник
Ответ Caramba работал довольно хорошо, однако у меня была проблема, что, если вы выбрали какой-то текст и выпустили мышь за пределы области текста , событие не сработало.
Чтобы решить эту проблему, я изменил исходное событие на
mousedown
, это событие регистрируетmouseup
событие в документе, чтобы оно срабатывало после отпускания курсора.mouseup
Событие затем удаляет себя после того, как он выстрелил.Это может быть достигнуто с помощью добавления
once
опцииaddEventListener
, но, к сожалению, не поддерживается в IE11, поэтому я использовал решение во фрагменте.источник
addSelfDestructiveEventListener
!источник