Partage
  • Partager sur Facebook
  • Partager sur Twitter

Position du curseur dans un champ textearea

    9 mars 2010 à 18:18:43

    Bonjour,

    En cherchant sur le forum ainsi que sur internet, je n'ai pas vraiment trouvé réponse à ma question. Je cherche à connaitre la position du curseur dans une zone textearea qui a été "transformée" en div pour réaliser un wysiwyg.

    je cherche à faire cela pour, par exemple, insérer un élément juste à l'endroit de la position du curseur.

    Jusque là j'arrive bien à avoir la position du curseur avec les fonction suivantes :

    getSelection : function() {
    			return (window.getSelection) ? window.getSelection() : document.selection;
    		},
    		
    		getRange : function() {
    			var selection = this.getSelection();
    	    
    			if (!(selection)) {
    			    return null;
    			}
    	    
    			return (selection.rangeCount > 0) ? selection.getRangeAt(0) : selection.createRange();
    		},
    		
    		getPos : function() {
    			var range = this.getRange();
    			
    			if(!(range)) {
    				return null;
    			}
    			
    			var startPos = range.startOffset;
    			var endPos = range.endOffset;
    			
    			return {start : startPos, end : endPos};
    		},
    


    En appelant la fonction getPos(), cela me permet d'avoir un objet avec la position de départ et de fin. Et ça me retourne effectivement bien la position du curseur.

    Mais si je fais un retour à la ligne, il va me recalculer la position à partir du br (de la nouvelle ligne si vous préférez) qui est généré automatiquement.

    Du coup ca fausse tout. Lorsque je souhaite retrouver la position il va prendre la position 0 de la première ligne, aller chercher la position du curseur par rapport à ce point. Malheureusement s'il y a plusieurs retour à la ligne et que le curseur se trouvait dans une ligne différente que la première, il me donnera pas la bonne position.

    Voyez vous ce que je veux dire ?

    Merci de votre aide.
    Bien cordialement.

    PS : Si vous avez besoin de tout le code demandez, j'ai essayé de mettre que le nécessaire pour ne par vous embrouiller.
    • Partager sur Facebook
    • Partager sur Twitter

    Position du curseur dans un champ textearea

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown