Quero obter a posição do texto selecionado usando javascript. Por exemplo,
eu tenho uma área de texto simples.
#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>
Na minha área de texto, tenho alguns textos como:
"I am a student and I want to become a good person"
A partir dessa string, se eu selecionar "tornar-se uma boa pessoa" na área de
texto ,
então Como posso obter a posição de texto / string selecionada em javascript?
Aqui, o caractere de sequência selecionado começa em 29 e termina em 49. Portanto, a posição inicial é 29 e a posição final é 49
javascript
html
Md. Tahazzot
fonte
fonte
Respostas:
Isso funcionará para a seleção de texto com o mouse e o teclado para todos os elementos da área de texto na página. Altere o seletor, seja mais específico e leia os comentários, se você não quiser / precisar da seleção do teclado.
fonte
Eu usaria o evento onselect para obter o mesmo.
fonte
fonte
A resposta do Caramba funcionou muito bem, no entanto, tive o problema de que se você selecionasse algum texto e soltasse o mouse fora da área de texto , o evento não seria acionado.
Para resolver isso, mudei o evento inicial para
mousedown
, este evento registra ummouseup
evento no documento para garantir que ele seja acionado após o lançamento do cursor. omouseup
evento é removido automaticamente após ser acionado.Isso pode ser alcançado com a adição da
once
opçãoaddEventListener
, mas infelizmente não é suportada no IE11, e é por isso que usei a solução no snippet.fonte
addSelfDestructiveEventListener
!fonte