begin process at 2012 05 29 12:32:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web


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

Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

mercredi 3 décembre 2008 à 14:57:21 | Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

Bonjour !

J'ai un code Javascript permettant à IE de Rechercher un Mot dans une Page Web.
Cependant, mon code ne fonctionne pas sous firefox : le bouton de recherche ne répond pas.
Je sais qu'ici vous etes extremement qualifies sur ces questions de compatibilites, alors j'aimerais vous soumettre mon script qui fonctionne parfaitement sous IE, et obtenir votre point de vue sur ce qui peut faire obstacle.
Comme je suis novice avec Javascript, je laisse passer pas mal de coquilles. Mais j'ai vraiment envie de progresser.

Par la suite j'aimerais également effectuer un remplacement automatique sur le document du mot recherché par un mot fixe, prévu dans le code.

Je vous remercie d'avance pour votre aide !

Voici le code pret à fonctionner :

<html>
<body>
<head></head>
<!-- UNE  ETAPE  D'INSTALLER  Rechercher un mot sur une page web    -->
<!-- ETAPE 1 : Placer le code suivant entre les balises <BODY>...</BODY>  -->
<script language="JavaScript">

var NS4 = (document.layers);   
var IE4 = (document.all);

var win = window;   
var n   = 0;

function findInPage(str) {

  var txt, i, found;

  if (str == "")
    return false;

  //
  // Commencer.

  if (NS4) {

    //
    //

    if (!win.find(str))
      while(win.find(str, false, true))
        n++;
    else
      n++;

    //

    if (n == 0)
      alert("Not found.");
  }

  if (IE4) {
    txt = win.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();
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
//
// C'est ici que je bloque pour changer le mot recherché par "Vaches"
//
// document[i].value = "Vaches";
//
//
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
      n++;
    }

    //

    else {
      if (n > 0) {
        n = 0;
        findInPage(str);
      }

      //

      else
        alert("Pas trouver.");
    }
  }

  return false;
}

</script>

<body>
<form name="search" onSubmit="return findInPage(this.string.value);">
<font size=3><input name="string" type="text" size=15 onChange="n = 0;"></font>
<input type="submit" value="Trouver">
</form>
<textarea NAME="zone" ROWS="25" COLS="100">
Bonjour ! Voici ma phrase de test. <BR><BR>

Prochaine etape :<BR>
Remplacer toutes les occurences de "Moutons" par des "Vaches" :<BR><BR>

Moutons <BR>
Moutons <BR>
Moutons <BR>
</textarea>
</body>
</html>



jeudi 4 décembre 2008 à 08:20:37 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Bul3

Membre Club
bonjour,
si j'étais toi je regarderais plus simplement du coté de replace...
    var reg = new RegExp( a_chercher, "gi") ;
    resultat = origine.replace( reg, remplacer_par ) ;
Cordialement
          [mon Site]  [M'écrire] Bul         

jeudi 4 décembre 2008 à 14:51:50 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

Ok, si je comprends bien tu me conseilles de recommencer à zero avec 2 fonctions à créer :
a_chercher()
remplacer_par()

Puis je utiliser findInPage() de mon script a la place de a_chercher() ?
Est-ce que ce sera compatible Firefox ?

Dois-je coder une fonction remplacer_par() ?

Je ne connaissais pas RegExp(), j'ai fait qqes recherches et compris que ça permet de traiter du contenu en dynamique.

Voilà la forme que j'aimerais que ça prenne :
Comment dois-je faire pour faire fonctionner remplacer_par ? replace() ? j'avoue que je suis un peu perdu.

<html><head><title>Test</title><script type="text/javascript">
<!--
function edit(valeur)
{
 var reg = new RegExp( a_chercher, "e") ;
 resultat = origine.replace( reg, remplacer_par ) ;
}
//--></script></head><body><form action="">
<input name="zone" value="remplacer tous les E par des A.">
<input type="edit" value="Editer" onClick="edit(this.form.User.value)">
</form></body></html>

jeudi 4 décembre 2008 à 15:13:51 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Bul3

Membre Club


euh...  je t'ai mis une "syntaxe générale"

si on prend dans ton 2ème exemple "remplacer tous les E par des A"

a_chercher       : ce sont les caractères, les mots... à rechercher
                         "E" à priori ?
resultat           : c'est le texte après remplacement
                         les "E" auront été remplacé par "A"
                         tu n'as rien mis dans ton 2ème exemple
                         dans ton 1er, ce serait la même zone que celle d'origine,
                         textarea NAME="zone" peut-être ?
origine             : c'est le texte tel qu'il est/existe à l'origine
                        je ne vois pas ce champ dans ce que tu postes en dernier,
                        dans ton 1er exemple, c'était ton textarea NAME="zone" non ?
remplacer_par  : c'est ce par quoi il faut remplacer ce qu'on à cherché
                        "A" donc pour toi probablement.

dans var reg = new RegExp( a_chercher, "e") ;
le 2ème paramètre ne correspond pas à la syntaxe prévue
mon exemple était :  "gi"
g = pour faire sur tous les caractères
i = pour ignorer les majuscules/minuscules
c'est a_chercher qui doit (?) être = "E" ( ou "e" )

si je te donne directement la solution,
    ça ne t'apporterait pas grand chose,
    tu as tout pour faire normalement...

          [mon Site] [M'écrire] Bul         

jeudi 4 décembre 2008 à 17:12:59 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

MERCI !!

Alors voici ce que j'en apprend :

var reg = new RegExp( "Moutons", "gi") ;
Le M majuscule de moutons est inutile puisque j'ai ensuite les paramètres "gi".
G concerne des caractères mais est compatible pour traiter le mot concerné.

RegExp  est une fonction javascript qui cherche dans le document.

Il y a une différence entre :
var reg = new RegExp( "Moutons", "gi") ;
ou : var reg = new RegExp( "(Moutons)", "gi") ;

On obtient reg qui est le mot trouvé et on l'envoie dans replace pour obtenir des "Vaches". Où Resultat est le texte et replace traite tous les moutons d'un coup.

zone est le nom de ma zone de saisie où je colle le texte à traiter.
resultat = zone.replace( reg, "Vaches" ) ;
Faudrait-il dire ?
document.zone.value = document.zone.replace.value( reg, "Vaches" ) ;

-----------------------------------------------------------------------------

Maintenant je sais le faire en partant d'une var="Mon histoire de moutons".
J'aimerais appliquer ces connaissances à un bouton d'envoi affectant une "zone1" qui reçoit et "zone2" qui restitue le résultat.  (2 texta area)

Ce qu'il me manque c'est comment remplacer mon :
var =" mon texte " ;
Par une syntaxte compatible firefox :
document.etc...récupérer...dans"zone".value, du genre :
var=document.getElementById('zone1');
ainsi que ;
document.etc...write...dans"zone2"

Sauf erreur de ma part, le code bouton sera :
<form name="search" onSubmit="return nom_de_la_fonction(this.string.value);">

Cet aspect là ne m'est pas intuitif du tout,   toute aide serait bienvenue !

jeudi 4 décembre 2008 à 17:42:34 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

J'ai essayé d'aller aussi loin que je pouvais de mon côté.
J'ai encore quelques fautes persistantes que je n'arrive pas à corriger.
Je pars sur la base du script que tu m'as donné :
   var reg = new RegExp( a_chercher, "gi") ;
    resultat = origine.replace( reg, remplacer_par ) ;

Je l'utilise dans une page firefox qui a une zone de saisie, un bouton d'action et une div de résultat. En voici le code :

<html><head><title>Test</title><script type="text/javascript"><!--
function edit(texte){
document.getElementById("txtI") reg=new RegExp("(mouton)", "gi");
document.getElementById("resultat").innerHTML=chaine.replace(reg,"<SPAN style='background-color=yellow'>Vache</SPAN></FONT>") + "<BR>");
} //--></script></head><body>
<form name="frm">
 <input type="button" name="Editer" value="Editer" onClick="edit(document.frm.txtN.value);this.form()"><br></br>
  <input name="txtN" id="txtI" type="text" value="Moutons courant après des moutons, poursuivi par qn qui crie MOUTONS !!!" size="40" />
</form>
<div id="resultat"></div></body></html>

Comme je le disais dans mon sujet précédent, je butte sur les notions de pointage pour appeler une zone et écrire dans le div. J'ai essayé de fair eles deux actions chercher remplacer en une seule ligne de code mais ça ne me semble pas possible. Si ça l'était j'aurais pu  éviter d'utiliser la VAR qui bloque mon code. Quoi qu'il en soit j'y suis presque, il me faudrait juste un coup de pouce pour le pointage et le début de ma fonction qui se cherche encore...

Merci pour votre soutien !

jeudi 4 décembre 2008 à 17:49:05 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

Mince je viens de me dire que :
document.getElementById("txtI") reg=new RegExp("(mouton)", "gi");
Devrait être qc du genre :
var reg = new RegExp("(mouton)", "gi");
Avec un "document.frm.txtN.value" ou "document.getElementById("txtI")" quelque part qui permette au script de comprendre qu'il doit traiter l'input de saisie, n'est-ce pas ?
J'aimerais avoir la visibilité là dessus !! c'est énervant de bloquer sur des notions aussi élémentaires !
vendredi 5 décembre 2008 à 09:31:06 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Bul3

Membre Club
Réponse acceptée !
faut d'abord que tu respectes la syntaxe requise :
par exemple : document.getElementById("txtI") reg=new RegExp("(mouton)", "gi");
ça ne "correspond à rien", ça donne d'ailleurs une erreur dans les navigateurs
<body>
    <script>
        function Remplace( origine, chercher, remplacement, resultat )
        {    return ( origine.replace( new RegExp( chercher, "gi"), remplacement ) );    }
    </script>
    <form name="frm">
        <textarea name="txt" cols="72" rows="8">Saisissez ici votre texte</textarea><br />
        Rechercher __ : <input type="text" name="Chercher"><br />
        Remplacer par : <input type="text" name="Remplacer">&nbsp;
        <input    type="button" value="Remplacer"
                  onClick=" document.frm.txt.value =
                               Remplace(   document.frm.txt.value,
                                           document.frm.Chercher.value,
                                           document.frm.Remplacer.value  );">
    </form>
</body>

          [mon Site] [M'écrire] Bul         

vendredi 5 décembre 2008 à 09:33:27 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Bul3

Membre Club
il faut lire :         function Remplace( origine, chercher, remplacement )
          [mon Site] [M'écrire] Bul 

vendredi 5 décembre 2008 à 11:31:45 | Re : Javascript pour Firefox : Rechercher et Remplacer un Mot dans une Page Web

Grobabar

Bul3, je te dis un grand merci !
La fonction est excellente, je comprends de mieux en mieux le fonctionnement de javascript, c'est vraiment très intéressant et ça donne envie de continuer.
Merci d'avoir pris le temps de me proposer cette solution, j'avais beaucoup cherché et je partais dans des analyses trop compliquées.
Ton script marche parfaitement ! Merci !


Cette discussion est classée dans : mot, txt, document, str, if


Répondre à ce message

Sujets en rapport avec ce message

Moteur de recherche interne Web, OK IE, Firefox 50% [ par fb_68 ] Bonjour,Novice en javascript, j'ai modifié un code source existant du site Web Creation pour y ajouter quelques fonctionnalités.Le script est un moteu extraire plusieurs mots [ par tonytruand ] Bonsoir,J'ai trové de nombreux moteurs de recherches intra page, moi ce que j'aimerais faire c'est pouvoir extraire dans une page plusieurd mot pré dé imbriquer des fonctions [ par tonytruand ] Bonjour;N'ayant jamais été déçu de vos réponses, je me permets d'en poser une nouvelle . J'ai une fonction qui balaie des ARRAY avec i++, le problème Cette objet ne gère pas cette propriété ou cette méthode [ par Tupac59 ] Voici le code posant problème : "Cette objet ne gère pas cette propriété ou cette méthode"sur la ligne du script "document.formulaire.submit();"Quelqu Problème fichier .txt [ par krovomite ] Bonjour, J'ai un problème concernant un .txt, voilà mon code : function saveAs() {     var textarea = document.form.production.value;     var pop = Problème fichier .txt [ par krovomite ] Bonjour, J'ai un problème concernant un .txt, voilà mon code : function saveAs() {     var textarea = document.form.production.value;     var pop = login [ par astuces_jeux ] Bonjour je cherche comment faire une page login qui vas vers un agenda que mes utilisateurs modifierontmerci de me dire comment faire une page login, sauver données vers fichier [ par bultez ] bulj'arrive "presque" à sauver des donnéesvers un fichier mais cela ne fonctionnepas tout à fait. quelqu'un peut-il m'aider ?où trouver les paramètres Fonction javascript [ par righton ] Bonjour voici une fonction pour mettre du bold ou de l'italic dans un champ de saisie :function format(f) { var str = document.selection.createRange( Alarm [ par DomJ ] Bonjour, je voudrais faire un script que, on met l'alarm à telle heure, puis à cette heure précise, (si la fenêtre est ouvert, ça ouvre un "alert()" a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,780 sec (3)

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