Je veux obtenir la position du texte sélectionnée en utilisant javascript. Par exemple,
j'ai une zone de texte simple.
#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>
Dans ma zone de texte, j'ai un texte tel que:
"I am a student and I want to become a good person"
Dans cette chaîne, si je sélectionne "devenir une bonne personne" dans la zone de texte,
alors comment puis-je obtenir la position du texte / de la chaîne sélectionnée en javascript?
Ici, le caractère de chaîne sélectionné commence à 29 et se termine à 49. Ainsi, la position de début est 29 et la position de fin est 49
javascript
html
Md. Tahazzot
la source
la source
Réponses:
Cela fonctionnera pour la sélection de texte avec la souris et le clavier pour tous les éléments de zone de texte sur la page. Assurez-vous de changer le sélecteur et d'être plus précis là-bas et de lire les commentaires si vous ne voulez pas / n'avez pas besoin d'une sélection de clavier.
la source
Je voudrais utiliser l' événement onselect pour obtenir la même chose.
la source
la source
La réponse de Caramba a très bien fonctionné, mais j'ai eu le problème que si vous sélectionnez du texte et relâchez la souris en dehors de la zone de texte, l'événement ne se déclenche pas.
Pour résoudre ce problème, j'ai modifié l'événement initial en
mousedown
, cet événement enregistre unmouseup
événement sur le document pour s'assurer qu'il se déclenche après la libération du curseur. L'mouseup
événement se supprime ensuite après son déclenchement.Cela peut être réalisé en ajoutant l'
once
option àaddEventListener
, mais n'est malheureusement pas pris en charge dans IE11, c'est pourquoi j'ai utilisé la solution dans l'extrait de code.la source
addSelfDestructiveEventListener
!la source