IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Texte avant curseur


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 39
    Points : 25
    Points
    25
    Par défaut Texte avant curseur
    Voila ce que je cherche à faire:

    Il me faut une fonction Javascript qui soit capable de me retourne une chaine de caractères qui est la sous-chaine comprise entre le début et la position courante du curseur dans un TextBox.

    ex: Le TextBox est vide, je tappe "bonjour comment vas tu ?", la fonction me renvoi "bonjour comment vas tu ?" (le curseur étant encore placé à la fin de la chaine). Maintenant, le clic entre le 2 "m" du mot "comment", la fonction doit me renvoyer "bonjour com"

    Cette fonction doit tourner sous IE et FF
    Sous FF, pas de problème, chaine.selectionStart me renvoit un Integer représentant la position courante du curseur, il suffit donc après de faire un chaine.subString(0,chaine.selectionStart) et ca fonctionne, par contre, sous IE, chaine.selectionStart ne fonctionne pas, et rien ne me permet de récupérer la position du curseur. On peut récupérer le texte sélectioné, y ajouter du texte avant ou après, mais pas connaitre le position du curseur ou bien le texte avant la sélection...

    merci par avance pour vos idées

    NiHaoMa

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Salut,

    J'ai mis enormement de temps avant de trouver je pense "la solution ultime" pour recupérer la position du curseur/de la selection sous IE dans un textarea, et encore ce n'est que de la bidouille. Je posterai le code un de ces 4 dans le forum contribution.
    Dans un input text, il n'ya pas besoin d'autant de complexité (car la complexité vient avec les sauts de ligne) et voici typiquement un algo qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    focuser l'input;
    recuperer le TextRange associé à la selection;
    tantqu'on est pas sorti de l'input (utilisation de la propriété parentElement du TextRange) faire
      deplacer le debut du range de 1 caractere (moveStart('character', -1)) et comptabiliser ce deplaçage
    fin tantque;
    la position du debut est le nombre de deplaçages effectués - 1;
    Je te laisse chercher de la doc sur la manipulation des TextRange

Discussions similaires

  1. [PHP-JS] Afficher du texte avant redirection
    Par calitom dans le forum Langage
    Réponses: 9
    Dernier message: 25/01/2007, 10h05
  2. Réponses: 8
    Dernier message: 27/10/2006, 14h27
  3. Formater une zone de texte avant de l uploader
    Par EvilAngel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/08/2006, 15h47
  4. formulaire et concaténation type="text" avant soumission
    Par jakouz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/04/2006, 10h39
  5. Afficher le texte avant les images et les pubs
    Par topolino dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo