IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[JS] Remplacer les mots dans le code d'une page.


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de sansamis
    Inscrit en
    Janvier 2007
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par d�faut [JS] Remplacer les mots dans le code d'une page.
    Salut les copains !

    Alors voila: je dois me contenter de XHTML et de JS pour des raisons assez tordues, et je dois faire ca:

    J'ai un code, comme ceci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <html>
     
    <head>
     
    </head>
     
    <body>
     
    Bienvenue [nom] !<br />
    <br />
    Tu as [age] ans [nom] =]<br />
    <br />
    Blablabla...
     
    </body>
     
    </html>
    Auquel je dois ajouter une fonction JS de facon � remplacer tous les [nom] de la page par Roger par exemple et tous les [age] par 31 par �xemple de facon � obtenir ca:

    Citation : ce qui devrait �tre afficher
    Bienvenue Roger !

    Tu as 31 ans Roger =]

    Blablabla...

    J'ai alors cr�� ca:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language="JavaScript">
    if (done=="")
    {
    code = document.documentElement.innerHTML;
    code = code.replace("[nom]","Roger");
    code = code.replace("[age]","31");
    done = 1;
    document.write(code);
    document.write("lol");
    }
    </script>
    A mettre entre <head> et </head>.

    On m'a dit que le code pouvait �tre r�cup�r� dans une variable avec document.documentElement.innerHTML car le script demande le code de la page sur lequel il se trouve, ce qui ne fonctionnerait pas s'il cherchait le code d'une page �trang�re.

    Il y a un truc avec "done" qui prend la valeur 1 de facon � le pas repeter la fonction lors du document.write, sinon cela fait une boucle infinie qui fait planter le navigateur.

    Mais h�las cela affiche [nom] et [age] comme si la fonction n'avait servi � rien :'(

    J'ai m�me mis le document.write("lol"); pour voir s'il s'affichait mais ca n'�crit pas de "lol"
    Edit: si je place le script JS apr�s <body> au lieu d'apr�s <head>, le "lol" s'�crit, mais le rest ne change toujours pas

    Quelqu'un autait-il une id�e ?

    Merci d'avance,

    Edit2: J'ai essay� ca, completement autre chose, qui m'a parut super, mais toujours sans succ�s:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <html>
     
    <head>
     
    <script language="JavaScript">
    window.onload = pbo();
    function pbo()
    {
    code = document.getElementsByTagName("body").innerHTML;
    code = code.replace("'","\'");
    code = code.replace("[nom]","Roger");
    code = code.replace("[age]","31");
    document.getElementsByTagName("body").innerHTML = code;
    }
    </script>
     
    </head>
     
    <body>
     
    Bienvenue [nom] !<br />
    <br />
    Tu as [age] ans [nom] =]<br />
    <br />
    Blablabla...
     
    </body>
     
    </html>

  2. #2
    Membre confirm� Avatar de Chen norris
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par d�faut
    Si tu fais un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(document.getElementsByTagName("body").innerHTML);
    Un �l�ment t'est-il bien renvoy� ? Si ce n'est pas le cas, essaye plut�t la fonction getElementById avec laquelle tu seras s�r de d�signer un �l�ment pr�cis de ta page :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById("id_body").innerHTML
    avec au niveau de ton body

  3. #3
    Membre averti Avatar de sansamis
    Inscrit en
    Janvier 2007
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par d�faut
    Ca ne marche toujours pas, pas d'alerte, et rien non plus avec un id

  4. #4
    Membre confirm� Avatar de Chen norris
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par d�faut
    J'ai vu que tu avais d�j� essay� de l'appeler avec window.onload = pbo();, mais essaye d'appeler ta fonction JS d�s le chargement de ta page comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <body id="id_body" onload="javascript:pbo();">

  5. #5
    Membre averti Avatar de sansamis
    Inscrit en
    Janvier 2007
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <html>
     
    <head>
     
    <script language="JavaScript">
    function pbo()
    {
    code = document.getElementById("id_body").innerHTML;
    code = code.replace("'","\'");
    code = code.replace("[nom]","Roger");
    code = code.replace("[age]","31");
    document.getElementById("id_body").innerHTML = code;
    }
    </script>
     
    </head>
     
    <body id="id_body" onload="javascript:pbo();">
     
    Bienvenue [nom] !<br />
    <br />
    Tu as [age] ans [nom] =]<br />
    <br />
     
    Blablabla...
     
    </body>
     
    </html>
    Rien...

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    D�veloppeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par d�faut
    String.replace() attend une expression reguliere comme premier argument, ce que tu passes sont des chaines. Peut etre que le navigateur en extrapole une expression reguliere mais il faut savoir que les crochets font partie de la syntaxe des expressions regulieres, ce qui fausserait tout.
    Pour que les remplacements se fassent pour chaque occurence de la recherche, il aurait aussi fallu inclure le flag "global" (g)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function pbo()
    {
    var code = document.body.innerHTML;
    code = code.replace(/\[nom\]/g, 'Roger');
    code = code.replace(/\[age\]/g, '31');
    document.body.innerHTML = code;
    }

  7. #7
    Membre confirm� Avatar de Chen norris
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par d�faut
    En passant par les expressions r�guli�res, �a fonctionne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <html>
     
    <head>
     
    <script language="JavaScript">
    function pbo()
    {
    	code = document.getElementById("id_body").innerHTML;
    	code = code.replace("'","\'");
    	code = code.replace(/\[nom]/g,"Roger");
    	code = code.replace("[age]","31");
    	document.getElementById("id_body").innerHTML = code;
    }
    </script>
     
    </head>
     
    <body id="id_body" onload="javascript:pbo();">
     
    Bienvenue [nom] !<br />
    <br />
    Tu as [age] ans [nom] =]<br />
    <br />
     
    Blablabla...
     
    </body>
     
    </html>

  8. #8
    Membre averti Avatar de sansamis
    Inscrit en
    Janvier 2007
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par d�faut
    Merci � tous c'est nickel comme ca, mais maintenant mon autre probl�me est le suivant:

    Serait-ce possible d'avoir le m�me r�sultat sans passer par un id, si par �xemple je veux que quelqu'un mette mon code dans sa page simplement, sans rajouter un id="id_body" ? Comment faire ? J'ai essay� simplement en remplacent document.getElementById("id_body").innerHTML par document.getElementsByTagName("body") mais cela ne marche pas...

    Des id�es ?

  9. #9
    Membre Expert
    Avatar de Gruik
    Profil pro
    D�veloppeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par d�faut
    Comme je l'avais montr� dans mon code, tu peux acceder au body avec la propri�t� "body" sur le "document", c'est une propri�t� standardis�e par le DOM lvl1 et support� par tout le monde (je pense, enfin IE et Momo �a marche)

  10. #10
    Membre averti Avatar de sansamis
    Inscrit en
    Janvier 2007
    Messages
    71
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par d�faut
    D�sol� gruik j'avais pas vu que tu avais aussi chang� la ligne 3

    C'est paaarfait ! Merci � tous

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ajout d'une image SVG dans le code d'une page
    Par Mobius dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 27/05/2009, 16h37
  2. remplacer un mot dans la formule d'une serie d'un histogramme
    Par Chloupe dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 19/08/2008, 15h30
  3. Remplacer un mot dans le code d�un userform
    Par modus57 dans le forum Macros et VBA Excel
    R�ponses: 18
    Dernier message: 29/12/2007, 20h02
  4. Recherche d'un String dans le code d'une page
    Par MyWork dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 06/04/2007, 19h52
  5. [RegEx] motif pour remplacer un mot dans du code HTML ...
    Par r-zo dans le forum Langage
    R�ponses: 6
    Dernier message: 31/03/2006, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo