2013-06-29 4 views
2

Je construis un éditeur de document en ligne simple. Dans cet éditeur, je veux que le texte soit divisé en pages, chaque page étant divisible.Obtenir et régler de manière fiable la position du curseur/curseur dans une div modifiable

J'ai trouvé un algorithme de base pour ce faire. Essentiellement, je vérifie la div actuellement en cours pour voir si elle a plus de mots que la constante WORDS_PER_PAGE. Si c'est le cas, prenez le dernier mot de cette page et placez-le au début de la page suivante. Ensuite, vous effectuez la même vérification sur la page suivante, puis sur la page suivante, etc. jusqu'à ce que vous ayez atteint la fin des pages. Une vérification similaire est effectuée lorsque la touche appuyée est la touche de suppression/retour arrière.

Maintenant, cet algorithme n'est pas parfait (chaque page aura une hauteur variable en fonction de la longueur des mots) mais il convient parfaitement à mes besoins. La chose qui me vire vraiment est de régler la position du curseur et d'obtenir la position du curseur de ces divs modifiables. Tout ce que je veux, c'est une fonction getCursor (element) qui retournera le nombre de caractères que le curseur est décalé et setCursor (element, n) qui mettra le curseur à n caractères offset. Je ne donne pas une merde sur IE < 9 donc je n'ai pas besoin d'une solution de contournement pour cela. Je ne peux pas non plus utiliser la librairie Rangy ou n'importe quelle autre bibliothèque. J'ai essayé de déconner avec les objets Range et Selection mais je ne peux rien faire. Est-ce que quelqu'un a des idées ou des suggestions sur la façon dont je devrais attaquer ce problème?

Répondre

Questions connexes