OVH Cloud OVH Cloud

Moteur de recherche sur la page en cours

13 réponses
Avatar
lolo
Bonjour,

Je suis à la recherche d'un script qui me permette de faire un moteur de
recherche simple (sans indexation de page, ni rien) sur la page en cours. Le
script doit simplement "surligner" (par css ou autre) le mot recherché..

Merci de votre aide

Lolo

10 réponses

1 2
Avatar
Jean-Fabrice RABAUTE
lolo wrote:
Bonjour,

Je suis à la recherche d'un script qui me permette de faire un moteur de
recherche simple (sans indexation de page, ni rien) sur la page en cours. Le
script doit simplement "surligner" (par css ou autre) le mot recherché..

Merci de votre aide

Lolo




http://www.hypergurl.com/searchpage.html

--
Regards / Cordialement

=================== Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}

Avatar
lolo
"Jean-Fabrice RABAUTE" a écrit dans le message
de news: 41ebcb33$0$22658$

http://www.hypergurl.com/searchpage.html

--
Regards / Cordialement

=================== > Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}


Merci mais j'ai ce genre de script. Le soucis est que vu la taille de la
page, ce script n'est pas pratique car pour pouvoir voir tous les mots
recherchés, il faut à chaque fois cliquer sur le bouton (donc remonter en
haut de page). C'est pourquoi je veux un script qui me surligne tous les
mots de la page d'un coup.

Avatar
Jean-Fabrice RABAUTE
lolo wrote:
"Jean-Fabrice RABAUTE" a écrit dans le message
de news: 41ebcb33$0$22658$

http://www.hypergurl.com/searchpage.html

--
Regards / Cordialement

=================== >>Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}



Merci mais j'ai ce genre de script. Le soucis est que vu la taille de la
page, ce script n'est pas pratique car pour pouvoir voir tous les mots
recherchés, il faut à chaque fois cliquer sur le bouton (donc remonter en
haut de page). C'est pourquoi je veux un script qui me surligne tous les
mots de la page d'un coup.





Tu remplaces dans la fonction javascript :

txt.select();

par :

txt.pasteHTML('<FONT STYLE="color:black; background-color:yellow">' +
str + '</font>');

et tu modifies la fonction pour qu'elle trouve tous les mots de la page
et pas un par un et ca devrait le faire.


--
Regards / Cordialement

=================== Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}


Avatar
lolo
"Jean-Fabrice RABAUTE" a écrit dans le message
de news: 41ebd4ba$0$29096$

Tu remplaces dans la fonction javascript :

txt.select();

par :

txt.pasteHTML('<FONT STYLE="color:black; background-color:yellow">' + str
+ '</font>');

et tu modifies la fonction pour qu'elle trouve tous les mots de la page et
pas un par un et ca devrait le faire.


--
Regards / Cordialement


Comme tu dois t'en douter, je suis plutot une buse en JS alors en modifiant
le code j'ai fais un truc qui marchote pour IE mais par contre ca ne passe
pas sur Firefox (ni le script original)... De plus, si on change de mot à
chercher, ben en modifiant directement le style, ben on se retrouve avec
tous les mots surlignés..

Voici mon code, je l'ai simplifié puisque NS4 on s'en fou maintenant et ca
allège un peu le code ;). Si tu avais des idées au moins pour le rendre
compatible FF.


<script language="JavaScript">

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.
txt = win.document.body.createTextRange();

// Find the nth match from the top of the page.
while ( txt.findText(str) != false) {
txt.moveStart("character", -1);
txt.moveEnd("textedit");
txt.findText(str);
txt.pasteHTML('<span style="color:black; background-color:yellow">' +
str + '</span>');
}

return false;
}



</script>
Je ne sais pas pourquoi.. Mais alors vraiment pas pourquoi.. Mais ce n'est
pas grave

<form name="search" onSubmit="return findInPage(this.string.value);">
<div align="center">
<p><font size=3>
<input name="string" type="text" size onChange="n = 0;">
</font>
<input type="submit" value="Search Page">
</p>
</div>
</form>

Avatar
Jean-Fabrice RABAUTE
De plus, si on change de mot à
chercher, ben en modifiant directement le style, ben on se retrouve avec
tous les mots surlignés..


Voici le nouveau code qui gere ca :

<script language="JavaScript">

var win = window; // window to search.
var n = 0;

function findInPage(str) {

var txt, i, found;

var listEls = document.getElementsByTagName("span");

for (i = listEls.length - 1 ; i >= 0 ; i--)
{
if (listEls[i].name == '__surligne__')
{
var innerHTML = listEls[i].innerHTML;
listEls[i].outerHTML = innerHTML;
}
}

if (str == "")
return false;

// Find next occurance of the given string on the page, wrap around
to the
// start of the page if necessary.
txt = win.document.body.createTextRange();

// Find the nth match from the top of the page.
while ( txt.findText(str) != false) {
txt.moveStart("character", -1);
txt.moveEnd("textedit");
txt.findText(str);
txt.pasteHTML('<span name="__surligne__" style="color:black;
background-color:yellow">' +
str + '</span>');
}

return false;
}



</script>



Voici mon code, je l'ai simplifié puisque NS4 on s'en fou maintenant et ca
allège un peu le code ;). Si tu avais des idées au moins pour le rendre
compatible FF.



Sous FireFox j'ai pas regardé, je ne sais pas comment gerer le texte de
la page sous FF, désolé :-(


--
Regards / Cordialement

=================== Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}

Avatar
lolo
Sous FireFox j'ai pas regardé, je ne sais pas comment gerer le texte de la
page sous FF, désolé :-(


--
Regards / Cordialement

=================== > Jean-Fabrice Rabaute
CORE SERVICES :: Software/Web development & Consulting services

http://www.debugbar.com : The most advanced WEB development tool for
Internet Explorer
http://www.core-services.fr - {Enjoy the future today}




Ouiiiii c'st vraiment nickel.

C'est vraiment sympa ton aide ;)

Quant à FF, je vais aller squatter d'autres groupes ;))

Avatar
ASM

Ouiiiii c'st vraiment nickel.

C'est vraiment sympa ton aide ;)


Bravo !

Quant à FF, je vais aller squatter d'autres groupes ;))


en effet le code proposé est du pur IE M$
avec :

txt = win.document.body.createTextRange();

Voir du côté de selfhtml.org
je crois me souvenir qu'ils ont qque chose


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
Ben-J
Pour FireFox, on peut faire ça :

<script language="JavaScript">

var win = window; // window to search.
var n = 0;

function findInPage(str) {

var txt, i, found;
var listEls = document.getElementsByTagName("span");

for (i = listEls.length - 1 ; i >= 0 ; i--){
if (listEls[i].name == '__surligne__'){
var innerHTML = listEls[i].innerHTML;
listEls[i].outerHTML = innerHTML;
}
}
if (str == "")
return false;

if (document.all){
txt = document.body.createTextRange();
while ( txt.findText(str) != false) {
txt.moveStart("character", -1);
txt.moveEnd("textedit");
txt.findText(str);
txt.pasteHTML('<span
name="__surligne__"style="color:black;background-color:red">' +str+
'</span>');
}
}else{
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
}
return false;
}


</script>
<html>
<body>
Je ne sais pas pourquoi.. Mais alors vraiment pas pourquoi.. Mais ce n'est
pas grave
<form name="search" action="#" onSubmit="return
findInPage(this.string.value);" id="search">
<div align="center">
<p><font size=3>
<input id="string" name="string" type="text" size
onChange="n= 0;">
</font>
<input type="submit" value="Search Page">
</p>
</div>
</form>
</body>
</html>

Cordiales salutations,
Ben-J

--
Toute l'actualite des emulateurs et
la FAQ de fr.comp.emulateurs :
http://www.consollection.com
Avatar
lolo
C'est vrai que l'on peut déjà faire ca ;)

Je te remercie beaucoup


"Ben-J" a écrit dans le message de news:
41ecd5bc$0$7838$
Pour FireFox, on peut faire ça :

<script language="JavaScript">

var win = window; // window to search.
var n = 0;

function findInPage(str) {

var txt, i, found;
var listEls = document.getElementsByTagName("span");

for (i = listEls.length - 1 ; i >= 0 ; i--){
if (listEls[i].name == '__surligne__'){
var innerHTML = listEls[i].innerHTML;
listEls[i].outerHTML = innerHTML;
}
}
if (str == "")
return false;

if (document.all){
txt = document.body.createTextRange();
while ( txt.findText(str) != false) {
txt.moveStart("character", -1);
txt.moveEnd("textedit");
txt.findText(str);
txt.pasteHTML('<span
name="__surligne__"style="color:black;background-color:red">' +str+
'</span>');
}
}else{
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
}
return false;
}


</script>
<html>
<body>
Je ne sais pas pourquoi.. Mais alors vraiment pas pourquoi.. Mais ce n'est
pas grave
<form name="search" action="#" onSubmit="return
findInPage(this.string.value);" id="search">
<div align="center">
<p><font size=3>
<input id="string" name="string" type="text" size
onChange="n= 0;">
</font>
<input type="submit" value="Search Page">
</p>
</div>
</form>
</body>
</html>

Cordiales salutations,
Ben-J

--
Toute l'actualite des emulateurs et
la FAQ de fr.comp.emulateurs :
http://www.consollection.com



Avatar
Bobe
Ben-J nous a dit le 18/01/2005 10:24:
Pour FireFox, on peut faire ça :



Est-ce bien utile ? Firefox intègre en natif un système performant de
recherche dans la page (y compris une option pour surligner toutes les
occurences trouvées dans la page). À moins que je n'ai mal compris la
demande de lolo...

--
Bobe (Aurélien Maille)
http://webnaute.net

"la vie d'un geek est un combat perpétuel contre l'imperfection"

1 2