Maison > interface Web > js tutoriel > Comment puis-je obtenir la position du curseur (en caractères) dans une zone de texte sur différents navigateurs ?

Comment puis-je obtenir la position du curseur (en caractères) dans une zone de texte sur différents navigateurs ?

Susan Sarandon
Libérer: 2024-12-12 12:39:24
original
592 Les gens l'ont consulté

How Can I Get the Caret Position (in Characters) in a Textarea Across Different Browsers?

Obtention de la position du curseur dans une zone de texte en nombre de caractères

Résumé du problème :

JavaScript les développeurs recherchent des méthodes pour récupérer la position du curseur basée sur les caractères dans un élément textarea. Cette position est cruciale pour diverses tâches de manipulation de texte.

Réponse :

Les navigateurs Firefox et Safari offrent une solution simple grâce à la propriété textarea.selectionStart. Cependant, pour la compatibilité avec Internet Explorer, une approche plus complexe est nécessaire.

Le code fourni définit la fonction getCaret(), qui utilise une stratégie différente selon le type de navigateur :

  • Dans les navigateurs basés sur Gecko (y compris Firefox et Safari) : il s'appuie sur textarea.selectionStart.
  • Dans Internet Explorer : il émule la fonctionnalité en créant un fichier temporaire plage et mesurer sa longueur par rapport à la plage d'origine.

De plus, un plugin jQuery FieldSelection est recommandé pour une manipulation plus avancée de la sélection de texte.

Mise en œuvre mise à jour :

Le code original a été affiné comme suit :

function getCaret(el) {
  if (el.selectionStart) {
    return el.selectionStart;
  } else if (document.selection) {
    el.focus();
    var r = document.selection.createRange();
    if (r == null) { return 0; }
    var re = el.createTextRange(), rc = re.duplicate();
    re.moveToBookmark(r.getBookmark());
    rc.setEndPoint('EndToStart', re);
    return rc.text.length;
  }
  return 0;
}
Copier après la connexion

Cette implémentation mise à jour offre une fiabilité et une flexibilité améliorées dans différents environnements de navigateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal