Recherche d'un mot dans une page

Soyez le premier à donner votre avis sur cette source.

Snippet vu 28 673 fois - Téléchargée 27 fois

Contenu du snippet

Voici un petit javascript qui vous permet de rechercher un mot dans une page, en le surlignant (un mot à la fois, recliquer sur le bouton rechercher pour surligner l'instance suivante)
Comme vous le voyez, c'est un script qui n'est pas de moi, mais j'ai cependant trouvé utile de le déposer sur ce site.

Source / Exemple :


<SCRIPT language=JavaScript>
/* Find In Page Script- By Mike Hall (MHall75819@aol.com) */
/* Recherche de mot */
var NS4 = (document.layers);    // Which browser?
var IE4 = (document.all);
var win = window;    // window to search.
var n   = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
// Find next occurance of the given string on the page, wrap around to the
// start of the page if necessary.
if (NS4) {
// Look for match starting at the current point. If not found, rewind
// back to the first match.
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
// If not found in either direction, give message.
if (n == 0)
alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe.");
}
if (IE4) {
txt = win.document.body.createTextRange();
// Find the nth match from the top of the page.
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
// If found, mark it and scroll it into view.
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
  n++;
  }
// Otherwise, start over at the top of the page and find first match.

else {
if (n > 0) {
n = 0;
findInPage(str);
}
// Not found anywhere, give message.
else
alert("Je suis navré, je n'ai rien trouvé. Vérifiez l'orthographe.");
}
}
return false;
}
</SCRIPT>

<FORM name=search onsubmit="return findInPage(this.string.value);"><INPUT 
name=string onchange="n = 0;"> 
<INPUT type=submit value=Rechercher></FORM>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
146
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
21 juillet 2013
3
Bonjour,

Est-ce que quelqu'un pourrait de dire comment rechercher uniquement dans une iframe (name="page") ?

Merçi d'avance.
Messages postés
4
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
8 janvier 2010

Marche pas
Messages postés
8
Date d'inscription
mercredi 16 septembre 2009
Statut
Membre
Dernière intervention
30 septembre 2009

c'est pas vraiment ce que je cherchais mais merci quand même
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004

Ma source a 7 ans et demi... autant dire une éternité !

Je conseillerais plutot de vous tourner du coté des librairies comme JQuery qui permettent de coder en JS plus facilement / proprement / sur toutes les plateformes et avec une syntaxe sympathique.

Et notamment un simple Google "highlight word jquery" renvoie vers cette solution intéressante pour JQuery : http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
Messages postés
8
Date d'inscription
mercredi 16 septembre 2009
Statut
Membre
Dernière intervention
30 septembre 2009

re

ça marche super mais serait-il possible d'ajouter la fonction "suivant" car si je recherche dans une liste de 2000 éléments différents et qu'il existe deux fois le même mot ... ça coince

merci
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.