L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX new!
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle

     Referencement
     Créat. de bannière

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
100126 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kits graphiques

Plus :
     Comparateur de prix
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Hebergement gratuit
     Le PHP facile
     Horoscope
     Comscripts
     WebmasterClub
     Activeartanima...
     Le village de ...
     L'écriteau
     Faro-dessing
     Images gifs an...
     Netsources
     Easy-script.com
     Création de site
     Créer son site...
     K i s s design
     Les autres
     Votre site ici ?


Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]


[ Forums >> JavaScript >> Problèmes de création JavaScript / DHTML >> Rechercher mot dans un SPAN ??? ]

> Rechercher mot dans un SPAN ???
[ Posté par fabiano13 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 02-05-2008 à 12:43 | 8 messages ]

Bonjour, j'ai un problème en Javascript sur une fonction de recherche de mot dans un SPAN.

Le problème de ma fonction c'est qu'il prend à partir du SPAN (foo2) et non uniquement le SPAN spécifié (foo2) !

Si vous faites un Copie/Coller vous allez vite vous rendre compte qu'il prendra le texte bleu ainsi que le vert. Comment faire pour qu'il prenne en compte que le bleu ?

Merci de votre aide.
Fabiano13

<script>
function Rechercher(LeMot) {
if (LeMot) {
sSelection = document.body.createTextRange()
sSelection.moveToElementText(document.getElementById('foo2'));
while (sSelection.findText(LeMot,10000,0)) {
sSelection.select()
sSelection.scrollIntoView()
if (confirm("Transférer dans l'autre liste ?")) {
// Si on a trouvé le mot on le bascule dans l'autre liste
break;
}
sSelection.collapse(false)
}
}
}
</script>

<font color=red>Texte texte texte Texte texte texte Texte texte texte Texte texte texte Texte texte texte</font>
<br><br>
<span id="foo2" ContentEditable><font color=blue>Texte texte texte Texte texte texte Texte texte texte Texte texte texte Texte texte texte</font></span>
<br><br>
<font color=green>Texte texte texte Texte texte texte Texte texte texte Texte texte texte Texte texte texte</font>
<br><br>
<a href="#" onclick="Rechercher('tex')"><b>Rechercher le mot T E X T E</b></a>





[ Posté par jparia ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 02-05-2008 à 22:16 | 513 messages ]

slt,
tu peux récupérer le contenu du span seul par:

var wText = document.getElementById("foo2").innerHTML;


Dans ce cas il ne faut pas ajouter de balise font à l'intérieur pour n'obtenir que le texte désiré, utilise le style="color:#00f" dans la balise span.

<span id="foo2" style="color:#00f">Texte texte texte Texte texte texte Texte texte texte Texte texte texte Texte texte texte</span>


Ensuite pour rechercher un mot dans un texte il suffit d'utiliser la méthode:

String.indexOf(String souschaine, Integer debut)


retourne -1 si la chaine n'est pas trouvée.


[Message édité par jparia le 02-05-2008 à 22:18]


________________
Seule la compréhension permet d'avancer.
Ah! et puis on a pas toujours raison, mais un p'tit merci nous fait toujours du bien.

[ Posté par fabiano13 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 04-05-2008 à 13:37 | 8 messages ]

Merci pour ton aide. Je reviens juste de week end. Je vais bosser ça ce soir. Merci encore. Je te tiens au courant.

[ Posté par fabiano13 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 05-05-2008 à 09:36 | 8 messages ]

Je galère, car dans ta solution pour sélectionner le mot trouver il faut trouver la position du mot et si ce n'est pas le mot rechercher il faut prendre la dernière position du mot pour continuer la recherche. Je galère ! N'y a t-il pas un autre moyen ?

[ Posté par fabiano13 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 06-05-2008 à 12:44 | 8 messages ]

Enfin j'ai changé de méthode !

Voici le résultat concluant :

Encore mercis à DB77, jparia, nicomilville, bultez et à PetoleTeam pour leur aide.

<script type="text/JavaScript">
function Rechercher(LeMot) {
var sSelectBlock1, sSelectBlock2, cont;
sBlockSpan = document.getElementById("foo2");
sSelectBlock1 = sSelectBlock2 = document.body.createTextRange();
sSelectBlock1.moveToElementText(sBlockSpan);

while (sSelectBlock1.findText(LeMot)) {
if (sSelectBlock1.offsetTop>sBlockSpan.offsetTop+sBlockSpan.offsetHeight){break;}
sSelectBlock1.select();
sSelectBlock1.scrollIntoView();
if (confirm("Est-ce bon ?")) {
alert('On transfère \"' + LeMot + '\" dans la liste !!')
return false;
}
sSelectBlock1.collapse(false);
sSelectBlock2 = sSelectBlock1.duplicate();
sSelectBlock1.moveToElementText(sBlockSpan);
sSelectBlock1.setEndPoint("StartToEnd", sSelectBlock2);
}
}
</script>
</head>
<body>

<button onclick="Rechercher('it')">Rechercher (Et)</button>
<font color=blue>
Maître Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau,
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots le Corbeau ne se sent pas de joie,
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un fromage sans doute.
Le Corbeau honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus

</font>
<span id="foo2" contenteditable>
<font color=green>Maître Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau,
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots le Corbeau ne se sent pas de joie,
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un fromage sans doute.
Le Corbeau honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus</font>
</span>
<p><font color=red>
Maître Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau,
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots le Corbeau ne se sent pas de joie,
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un fromage sans doute.
Le Corbeau honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus
.</font>
</p>






Services email :

Vous devez vous identifier pour profiter des services par email du forum.
Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]






59 visiteurs
actuellement en ligne

    PUBLICITE



     ANNUAIRE WEBMAST.
MagikBiz
Integrez une section logo/sonnerie sur votre site !
http://magikbiz.com
Cat : Affiliation - publicité
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
54264 membres
9576 comptes CountUs
1403 comptes myCircle

     LES FORUMS :
14 forums
39051 topics
188226 messages
>> Les forums

    SONDAGE

Utilisez-vous une page d'accueil personnalisable ?
Oui, la page d'accueil de Google (pas le moteur)
Oui, netvibes
Oui, mon Yahoo
Oui, my MSN
Oui, un autre
Non, je n'utilise pas de service de page d'accueil personnalisée
La mini-astuce "Navigateur" du jour par mirage
La touche F11 de votre clavier permet de visualiser vos sites préférés en plein écran ! Fonctionne sous bon nombre de navigateurs :)
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2008 K-NETWORK - Tous droits réservés | CNIL N° 844440 | 04/07/2008 15:22:44 | Design by Studcrea | Gen. en 0.448 sec.