Recherche plein texte dans le HTML ignorant tags / &
J'ai récemment vu un grand nombre de bibliothèques de recherche et mise en surbrillance des termes à l'intérieur d'une page HTML. Cependant, chaque bibliothèque, j'ai vu a le même problème, ils ne peuvent pas trouver de texte partiellement enfermé dans une balise html et/ou qu'ils avaient l'échec à trouver des caractères spéciaux qui sont &-exprimé.
Exemple:
<span> This is a test. This is a <b>test</b> too</span>
De la recherche pour "un test" serait de trouver le premier cas, mais pas le second.
Exemple b:
<span> Pencils in spanish are called lápices</span>
De la recherche pour "lápices" ou "lapices" ne permettrait pas de produire un résultat.
Est-il une librairie JS qui fait cela ou au moins un moyen de contourner ces obstacles?
Merci d'Avance!
Bruno
Essayez de mark.js, il a une option
acrossElements
OriginalL'auteur Bruno | 2011-05-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
window.find()
en non-IE navigateurs etTextRange
'sfindText()
méthode dans IE. Voici un exemple:http://jsfiddle.net/xeSQb/6/
Malheureusement Opéra avant le passage à l'Clin moteur de rendu dans la version 15 ne prend pas en charge soit
window.find
ouTextRange
. Si c'est une préoccupation pour vous, plutôt luxueux alternative est d'utiliser une combinaison de la TextRange et Classe CSS applicateur modules de mon Longiligne de la bibliothèque, comme dans la démonstration suivante: http://rangy.googlecode.com/svn/trunk/demos/textrange.htmlCode:
Comment supprimer annuler les points saillants qui sont mis en évidence avec le code ci-dessus..
L'opéra ne soutient
window.find
nicreateTextRange
(ni unfindText
méthode surdocument.createRange()
objets)Une petite mise à jour: Opera 15 et les nouveaux supports de la fenêtre.trouver, car il est sur webkit.
comment faire pour supprimer la surbrillance des mots? Claire de sorte qu'il est de retour à la normale, pas de faits saillants...
OriginalL'auteur Tim Down
Il y a 2 problèmes ici. L'un est le contenu imbriqué problème, ou des résultats de la recherche qui s'étendent sur un élément de frontière. L'autre est de type HTML des caractères d'échappement.
Une façon de gérer le HTML des caractères d'échappement est, si vous utilisez jQuery par exemple, pour utiliser la
.text()
méthode, et lancer la recherche. Le texte qui vient de revenir de qui a déjà les caractères échappés "traduits" dans son vrai caractère.Une autre façon de gérer les caractères spéciaux serait de remplacer le caractère réel (dans la chaîne de recherche) avec la version échappée. Puisqu'il y a une grande variété de possibilités là-bas, cependant, qui pourrait être une longue recherche en fonction de la mise en œuvre.
Le même genre de texte "" la méthode peut être utilisée pour trouver le contenu correspond à qui couvrent les limites entité. Il est plus difficile parce que le "Texte" n'a pas la moindre notion de l'endroit où les parties réelles du contenu à venir, mais il vous donne une petite domaine de recherche de plus si vous percez. Une fois que vous êtes à proximité, vous pouvez passer à plus d'une "série de caractères" sorte de recherche plutôt qu'un texte basé sur la recherche.
Je ne sais pas du tout bibliothèques de faire cela, cependant.
OriginalL'auteur cdeszaq
Juste appuyer sur F3 et utiliser le
<p>
et</p>
commande à dire d'autres sur votre site.Par exemple:Vous avez les connaissances de la F3 bouton de recherche afin de mettre le texte sur l'écran pour dire aux autres que vous tapez..
OriginalL'auteur Hacker17