coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
17 nov. 2004 à 21:53
takali
Messages postés29Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention13 octobre 2008
-
2 juin 2005 à 18:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
takali
Messages postés29Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention13 octobre 2008 2 juin 2005 à 18:47
Slt tous le monde, je trouve se script sympa
je voulais savoir si il été possible defectuer la même recherche avec plusieurs mots clés?
Et aussi si un tel script peu rechercher dans une ifram ?
Voila
J'espere avoir bientôt une reponse
En tous cas
bon boulot
Emilie
takali
Messages postés29Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention13 octobre 2008 2 juin 2005 à 18:47
Slt tous le monde, je trouve se script sympa
je voulais savoir si il été possible defectuer la même recherche avec plusieurs mots clés?
Et aussi si un tel script peu rechercher dans une ?
Voila
J'espere avoir bientôt une reponse
En tous cas
bon boulot
Emilie
chimelpremier
Messages postés544Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention20 mai 2005 3 avril 2005 à 00:44
Voila ma version DHTML si ça intéresse qqun:
<html>
<head>
<style type="text/css">
.surligne
{
color: #C30;background-color: #ffa;
}
</style>
<title>Recherche</title>
<script type"text/javascript">
function recherche(chaine)
{
var i=posChaine=posTag=finTag=n=0;doc1=doc2=''
//doc1 : texte avant un tag
//doc2 : texte final
var doc = document.body.innerHTML
el=''+chaine+''
if(chaine=='')return
while(doc!='' && n<999)// n pour éviter la boucle infinie
{
posTag=doc.indexOf('<') //position d'un début de balise HTML
doc1=doc.substr(0,posTag) // bout de texte avant un tag
while(doc1.indexOf(chaine)!=-1 && i<99) //tant qu'on trouve une occurence de la chaine
{
posChaine=doc1.indexOf(chaine); // position occurence trouvée
doc2+=doc1.substr(0,posChaine)+el // texte avant occurence + élément ajouté
doc1=doc1.substr(posChaine+chaine.length,doc1.length) // doc1 restant
i++
}
doc2+=doc1 // on ajoute doc1 restant après la sortie de boucle
finTag=doc.indexOf('>')
doc2+=doc.substring(posTag,finTag+1) // ajoute le tag
doc=doc.substr(finTag+1,doc.length) //reste du texte
n++
}
document.body.innerHTML=doc2+doc // complète avec le reste de texte
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
Comment ça marche :
J'ai utilisé les méthodes indexOf() et substr() pour chercher les occurences de la chaine en évitant les tags HTML. Puis reconstruction de la page dans la variable doc2.
</html>
rttb
Messages postés290Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention25 avril 2008 30 nov. 2004 à 17:15
tu crees un style dans la balise <HEAD> comme d'habitude :
puis a la place de
motrecherche.pasteHTML(""+chaine+"");
tu mets :
motrecherche.pasteHTML(''+chaine+'');
Tous les 'delires' des CSS applicables au texte sont possibles, la fonction reecris le code html, alors tu fais ce que tu veux..
theXman
Messages postés37Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention11 mars 2006 30 nov. 2004 à 10:11
j'essaie de remplacer la 'colorisation' du texte par une couleur de fond avec bgcolor. Mon problème est que j'utilise une table pour appliquer le bgcolor uniquement au mot recherché ce qui provoque des retours à la ligne dans mon texte final
une solution?
merci
rttb
Messages postés290Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention25 avril 2008 23 nov. 2004 à 19:35
merci, cela fait plaisir
theXman
Messages postés37Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention11 mars 2006 22 nov. 2004 à 10:33
C'est du plus bel effet, merci à toi
rttb
Messages postés290Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention25 avril 2008 19 nov. 2004 à 17:59
createTextRange est une methode de la librairie msdn, donc je pense qu'elle ne fonctionne que sous IE, je n'ai pas trouvé d'equivalent pour les autres naviguateurs, faut utiliser IE ou un IE amelioré...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 nov. 2004 à 21:55
window.document.body.createTextRange()
is not a function
c'est Mozila qui l'a dit...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 17 nov. 2004 à 21:53
ça m'a l'air interessant mais si t'as une solution pour le faire tourner sous Konqueror ou tout rendu gecko (Mozilla par exemple...)... je suis prenneur...
2 juin 2005 à 18:47
je voulais savoir si il été possible defectuer la même recherche avec plusieurs mots clés?
Et aussi si un tel script peu rechercher dans une ifram ?
Voila
J'espere avoir bientôt une reponse
En tous cas
bon boulot
Emilie
2 juin 2005 à 18:47
je voulais savoir si il été possible defectuer la même recherche avec plusieurs mots clés?
Et aussi si un tel script peu rechercher dans une ?
Voila
J'espere avoir bientôt une reponse
En tous cas
bon boulot
Emilie
3 avril 2005 à 00:44
<html>
<head>
<style type="text/css">
.surligne
{
color: #C30;background-color: #ffa;
}
</style>
<title>Recherche</title>
<script type"text/javascript">
function recherche(chaine)
{
var i=posChaine=posTag=finTag=n=0;doc1=doc2=''
//doc1 : texte avant un tag
//doc2 : texte final
var doc = document.body.innerHTML
el=''+chaine+''
if(chaine=='')return
while(doc!='' && n<999)// n pour éviter la boucle infinie
{
posTag=doc.indexOf('<') //position d'un début de balise HTML
doc1=doc.substr(0,posTag) // bout de texte avant un tag
while(doc1.indexOf(chaine)!=-1 && i<99) //tant qu'on trouve une occurence de la chaine
{
posChaine=doc1.indexOf(chaine); // position occurence trouvée
doc2+=doc1.substr(0,posChaine)+el // texte avant occurence + élément ajouté
doc1=doc1.substr(posChaine+chaine.length,doc1.length) // doc1 restant
i++
}
doc2+=doc1 // on ajoute doc1 restant après la sortie de boucle
finTag=doc.indexOf('>')
doc2+=doc.substring(posTag,finTag+1) // ajoute le tag
doc=doc.substr(finTag+1,doc.length) //reste du texte
n++
}
document.body.innerHTML=doc2+doc // complète avec le reste de texte
document.getElementById('nbr').value=" "+i+" éléments trouvés";
document.getElementById('toto').value=""
}
</script>
</head>
Recherche de texte dans tout le document
<form name="form" method="post" action="index.html">
Rechercher :
</form>
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
un texte qui ne sert à rien d'autre qu'à illustrer
la fonctionnalité de ce script
Comment ça marche :
J'ai utilisé les méthodes indexOf() et substr() pour chercher les occurences de la chaine en évitant les tags HTML. Puis reconstruction de la page dans la variable doc2.
</html>
30 nov. 2004 à 17:15
<style type="text/css">
<!--
.Style1 {color: #CC3300;
background-color: #000066;
}
-->
</style>
puis a la place de
motrecherche.pasteHTML(""+chaine+"");
tu mets :
motrecherche.pasteHTML(''+chaine+'');
Tous les 'delires' des CSS applicables au texte sont possibles, la fonction reecris le code html, alors tu fais ce que tu veux..
30 nov. 2004 à 10:11
une solution?
merci
23 nov. 2004 à 19:35
22 nov. 2004 à 10:33
19 nov. 2004 à 17:59
17 nov. 2004 à 21:55
is not a function
c'est Mozila qui l'a dit...
17 nov. 2004 à 21:53