2010-07-08 3 views
0

J'ai un tas de texte sur mon document. Vous pouvez sélectionner un mot ou un mot et mettre le texte en surbrillance. Après l'avoir mis en surbrillance, une requête ajax est envoyée et le ou les mots sélectionnés sont envoyés au backend (PHP) et traités pour être sauvegardés dans la base de données. La page est actualisée et le texte sélectionné est en permanence en surbrillance.Instance de texte sélectionnée

Maintenant la partie mauvaise, si vous mettez en surbrillance "le", mettra en surbrillance tous les "le" dans le document texte. Comment puis-je détecter quel "the" est mis en évidence par javascript de sorte que seule l'instance appropriée est enregistrée dans la base de données.

+0

Comment fonctionne le mécanisme de sélection de mots? vous pourriez avoir quelque chose à partir d'éléments DOM distincts pour chaque mot avec des gestionnaires d'événements click, à un seul champ de texte et javascript calculant la sélection ... ?? – sje397

Répondre

1

Vous pouvez stocker des décalages de mots au lieu de mots. Par exemple pour la chaîne 'blabla the bla', vous stockez '8,3' (offset, longueur). Cependant, vous devrez recalculer tous les décalages dans le document s'il change. (Fabrik a raison)

0

Vous pouvez stocker la position des caractères de début et de fin du texte sélectionné par rapport au document entier. (bien sûr, cette approche ne fonctionnera que lorsque votre document ne change pas).

0

Une autre approche pour déterminer quel mot devrait être mis en évidence est son contexte - cela peut aussi être mauvais parfois mais nécessite moins de calculs. Ou position (comme 3 rd "le", 7 e "le").

Questions connexes