begin process at 2010 03 21 04:50:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

createTextRange() ne marche pas sous firefox !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

createTextRange() ne marche pas sous firefox !!

lundi 29 juin 2009 à 16:40:52 | createTextRange() ne marche pas sous firefox !!

romain117

Bonjour,

J'utilise une fonction Javascript qui permet de colorer les mots cherchés (lorsque l'on se trouve sur la page de recherche).

J'utilise la fonction javascript window.document.body.createTextRange() qui permet d'isoler chaque mot de la page pour pouvoir les traiter un à un ensuite. Le problème est que ce n'est y pas reconnu par firefox, seulement par internet explorer :( !!!
Apparemment cette fonction provient de la bibliothèque msdn donc c'est normal que ca ne marche que sous IE .
Connaissez-vous la fonction que je peux utiliser pour que mon script marche sous firefox ??


Autre problème. La coloration s'effectue partout sur la page (dans le body en fait). Or je voudrais pouvoir définir une zone de coloration. Comment faire ?
Pour le moment l'appel de ma fonction est dans le body :<body onload="onLoad(document.getElementById('crit'))">


Voici ma fonction si ca peut aider :

//colore le ou les mots cherchés dans la zone de recherche
function onload(chaine)
{
var mot=chaine.split(" ");//on coupe les mots si la recherche comprend plusieurs mots

var i=0;
while (typeof(mot[i]) != "undefined" )//pour chacun des mots recherchés
{

var motrecherche = window.document.body.createTextRange();//chaque mot est "mis" dans une cellule pour pouvoir travailler dessus ensuite

while(motrecherche.findText(mot[i])!=false) //tant qu'il y a des occurences du mot cherché
{
//alert ("mot : " + motrecherche.findText(chaine));
motrecherche.findText(mot[i]);//on se place a la premiere ou a la prochaine occurence
motrecherche.moveStart("character",0);//selection du mot a partir du debut...
motrecherche.findText(mot[i]);//...jusqu'à la fin
motrecherche.pasteHTML("<span class=\"couleur_rech\">"+mot[i]+"</span>");//...on colore le mot en rouge
}
i++;
}
}




Merci d'avance à tous ceux qui pourront m'aider .


lundi 29 juin 2009 à 16:45:23 | Re : createTextRange() ne marche pas sous firefox !!

Bul3

Membre Club
Réponse acceptée !
Bonjour,
regarde du coté des sources postées par petoleTeam,
de mémoire d'Alzheimer, il y a ce qu'il faut.
sinon... on te mettra ici ce qui convient.
Cordialement [mon Site] [M'écrire] Bul
lundi 29 juin 2009 à 18:26:10 | Re : createTextRange() ne marche pas sous firefox !!

romain117

Re bonjour.

Merci d'avoir répondu si vite.

Je n'ai pas trouvé pour le code source de petroleTeam (y a-t-il moyen de faire une recherche par auteur??)

En revanche j'ai trouvé ce lien sur le site : http://www.javascriptfr.com/codes/RECHERCHER-REMPLACER-MOT-DANS-TEXTE_44499.aspx

Ca pourrait résoudre un de mes deux problèmes (je dit "pourrait" car pour l'instant j'arrive pas à accéder au fichier zip ).

Je vous tient au courant !


Vive les forums !
Romain
lundi 29 juin 2009 à 18:43:27 | Re : createTextRange() ne marche pas sous firefox !!

romain117

Ah ben non !
Je me suis trompé !

Le lien donné ci-dessus ne marche que pour IE et Opéra ! Pas de chance...

J'attends vos suggestions


Vive les forums !
Romain
lundi 29 juin 2009 à 21:56:23 | Re : createTextRange() ne marche pas sous firefox !!

kankrelune

Membre Club
Réponse acceptée !
Slt... alors déja createTextRange() n'est pas spécifique à window.document.body

http://msdn.microsoft.com/en-us/library/ms536401(VS.85).aspx

pour le reste pas le temps de regarder.. essaye ça

http://eriwen.com/javascript/highlight-search-results-with-js/

mais ça a l'air un peu lourd pour ce que c'est... .. .

@ tchaOo°

mardi 30 juin 2009 à 08:45:53 | Re : createTextRange() ne marche pas sous firefox !!

Bul3

Membre Club

        function cherche(quoi)
        {   var ie = false;    /*@cc_on    ie = true;    @*/
            if ( !ie )
                     {  window.find(quoi,false,false);    }
            else    {  var txt = window.document.body.createTextRange();
                        txt.findText(quoi,0);
                        txt.select();
                     }
        }

mardi 30 juin 2009 à 08:58:15 | Re : createTextRange() ne marche pas sous firefox !!

Bul3

Membre Club

pour IE en mieux ( le 1er exemple ne surlignait que le 1er  trouvé !
mauvais copié/collé .... )

function findInPage(str)
                {    txt = window.document.body.createTextRange();
                    for (i = 0; i <= n & (found = txt.findText(str)) != false; i++)
                    {   txt.moveStart("character", 1);
                        txt.moveEnd("textedit");
                    }
                    if (found)
                             {  txt.moveStart("character", -1);
                                txt.findText(str);
                                txt.select();
                                txt.scrollIntoView();
                                n++;
                            }
                    else    {    if (n > 0)
                                         {   n = 0;
                                            findInPage(str);
                                         }
                                else    {  alert("pas trouvé");    }
                            }
                }



mardi 30 juin 2009 à 09:03:51 | Re : createTextRange() ne marche pas sous firefox !!
mardi 30 juin 2009 à 09:25:59 | Re : createTextRange() ne marche pas sous firefox !!

romain117

Salut ! Bul3, le code que tu proposes, est-ce qu'il marche seulement pour IE ou c'est aussi pour firefox ?? est-ce que c'est window.find() qu'il faut utiliser pour firefox ?? Ok merci pour le lien de petroleTeam je vais voir ca. Et merci kankrelune aussi pour ton lien. ca a l'air un peu lourd en effet mais enfin bon, si ca marche... Moi je dis elle était quand même bien cette fonction createTextRange(), simple et puissante.Même si évidemment, c'est du Microsoft :p
mardi 30 juin 2009 à 09:33:24 | Re : createTextRange() ne marche pas sous firefox !!

Bul3

Membre Club
>>le code que tu proposes, est-ce qu'il marche seulement pour IE ou c'est aussi pour firefox ??
exclusif IE
>> est-ce que c'est window.find() qu'il faut utiliser pour firefox
oui



1 2

Cette discussion est classée dans : fonction, mot, mots, motrecherche, createtextrange


Répondre à ce message

Sujets en rapport avec ce message

Tableau de mots [ par hippo27 ] J'ai un TP a faire. On nous donne une liste de mot. on la charge dans un tableau. Et c'est la que se pose le problème: on doit rechercher un mot dans Alternative à la fonction phpmail() [ par clarence75 ] Bonjour,Mon site est hébergé chez un prestataire qui ne veut pas activer la fonction php mail() ce qui fait que mes utilisateurs qui veulent par exemp Devinette [ par rems02 ] Voici la fonction suivante var char="azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789"; var r=8; var mot="?????"; var n=mot.length; var Fonction replace sur mots-cles dans le code HTML ? [ par Lomendil ] Bonjour,Je suis actuellement en train de construire un code afin de pouvoir traiter le code HTML d'une page et, eventuellement, de remplacer certaines Sélection automatique liste [ par nicojet ] Salut à tous,Existe t'il une fonction JS permettant de sélectionner l'élément d'une liste en fonction de sa valeur et non pas de son positionnement da empêcher l'exécution de l'action d'un formulaire [ par kawther84 ] je veux savoir la fonction javascript qui me permet d'empêcher le passage à l'exécution de l'action du formulaire, en effet j'ai une fonction php pour EXCEL fonction saveAs() [ par aljazzar ] Bonjour à tous,Je suis entrain de coder un script en js , qui consiste a récuperer des données d'un tableau html puis les transmettre à une feuille ex aide pour script [ par bostakini ] bonjour,J'aimerais mettre tout sa en language html ou php ALGORITHME - ESSAIRes = ressourcesAu départ toutes les variables son désactivéesSi le systèm tester variable php dans fonction javascript [ par xzonz ] bonjour a toutes et tous ma question est simplej'aimerai tester une variable php dans une fonction javascript ...j'ai un champs texte et un bouton sub Problème de calcul [ par leoloucal ] Bonjour, Tout d'abord, je ne sais pas si je suis sur le bon forum si ce n'est pas le cas désolée. Je crée normalement mes sites sur flash et là, je s


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales