Petite explication :
1) span : wsy (ContentEditable)
2) 2 listes déroulantes (ListeDeMots1 = listes de mots à chercher, ListeDeMots2 = listes de mots trouvé)
3) nom du formulaire : formulaire1
J'ai deux listes à choix multiples. La première stock des mots à chercher, la deuxième sert à stocker les mots trouvés.
Tu noteras que cela marche très bien avec un "textarea" mais pas avec un "span" !
<script>
function ChercherUnMotDansSpan(str,strLng,strVal) {
var TexteConcerne = ""
var i = 0
var Trouve = ""
var MotsInterdit = "le,la,petit"
var TabMotsInterdit = MotsInterdit.split(",")
for (var k=0; k<TabMotsInterdit.length;k++){
if (str.toLowerCase()==TabMotsInterdit[k].toLowerCase()){
return false
}else{
var ListeDesMotsAChercher = document.formulaire1.ListeDeMots2 // Liste à choix multiple
//TexteConcerne = window.document.formulaire1.sTextarea.createTextRange(); // TEXTAREA
TexteConcerne = wsy.document.selection.createRange().parentElement().getElementsByTagName("Span") // SPAN
TexteConcerne = document.body.createTextRange();
for (i = 0; i <= n && (Trouve = TexteConcerne.findText(str)) != false; i++) {
TexteConcerne.moveStart("character", 1);
TexteConcerne.moveEnd("textedit");
}
if (Trouve) {
TexteConcerne.moveStart("character", -1);
TexteConcerne.findText(str);
TexteConcerne.select();
TexteConcerne.scrollIntoView();
n++;
if (confirm(strLng)){
ListeDesMotsAChercher.options[ListeDesMotsAChercher.options.length] = new Option(strLng,strVal); // si c'est OK bascule le mot trouvé dans la liste "ListeDeMots2"
n=0;
}else{
ChercherUnMotDansSpan(str,strLng,strVal); // si ce n'est pas le mot souhaité alors continue ta recherche
}
} else {
if (n > 0){n=0;}
}
break
}}
}
function MotAChercherDansListe(){
NbCol1 = document.formulaire1.elements.ListeDeMots1.length;
for(a=0; a<NbCol1; a++){ document.formulaire1.elements.ListeDeMots1.options[a].selected = true; }
var chaine = document.formulaire1.elements.ListeDeMots1.options[document.formulaire1.elements.ListeDeMots1.selectedIndex].text;
var reg=new RegExp("[ ]+", "g");
for (i=0; i<document.formulaire1.ListeDeMots1.options.length; i++) {
if (document.formulaire1.ListeDeMots1.options[i].selected ) {
chaine = document.formulaire1.ListeDeMots1.options[i].text;
sVal = document.formulaire1.ListeDeMots1.options[i].value
var reg=new RegExp("[ ]+", "g");
var tableau=chaine.split(reg);
for (var x=0; x<tableau.length; x++) {
ChercherUnMotDansSpan(tableau[x],chaine,sVal)
break
}
}
}
}
</script>