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 :

Remplacer des éléments dans une page


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut Remplacer des éléments dans une page
    Salut , j'espérais faire un changement de style en javascript , l'idée consiste à changer tout les mots "blue" par exemple en "red" dans la page , L'idée qui me vient est de stocker tout le code source de la page dans une variable et faire un remplacement avec la méthode replace , mais techniquement je ne vois pas comment faire , De l'aide S'il vous plaît

  2. #2
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut
    Bonsoir,
    Le mieux serait de créer un div, et mettre de ce dont tu as besoins a l'interieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="mondiv">
    <p>Des truc bleus a l'interieur</p>
    </div>
    Par la suite tu met un code javascript à l'interieur d'une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function mettreEnRouge(){
    document.getElementById("mondiv").innerHTML = "<p>Des truc rouge a l'interieur</p>";
    }
    Par la suite ajoute un evennement onclick à ton truc clickable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="images/bouton.png" onclick="mettreEnRouge();" />
    Cordialement

  3. #3
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    tu voudrais modifier le css où il y a la propriété color ?
    l'idéal serait que tous tes éléments de couleur bleue aient la même classe, puis dans le javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function changeColor(classe,couleur)
    {
    var classes = document.getElementsByClassName(classe);
    for(var i=0;i<classes.length;i++)
     {
     classes[i].style.color = couleur;
     }
    }
    puis enfin dans ton html, un bouton comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="changer de couleur" onclick="changeColor('classe','red')" />
    évidemment, tu changeras "classe" par la classe que tu as attribué as tes éléments

  4. #4
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    Merci pour vos réponses mais ce n'est pas ça , je voudrai remplacer toute instance dans le code source du mot "blue" et le remplacer par "red" y compris les noms des dossiers , nom d'images etc..

  5. #5
    Membre éclairé
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Points : 709
    Points
    709
    Par défaut
    Bonjour,
    Tu veux remplacer le body de ta page web je pense, dans ce cas c'est possible
    1- Code html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="Submit" value="Mettre en rouge" onclick="mettreEnRouge();" />
    2-Ensuite mettre dans ton code javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function mettreEnRouge(){
          var reg=new RegExp("(blue)", "g");
          document.body.innerHTML = document.body.innerHTML.replace(reg, "red");
    }

  6. #6
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    ceci te conviendrait il ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var a=document.body.innerHTML;
    var i=a.indexOf("blue");
    while (i >= 0) {
    	a=a.replace("blue","red");
    	i=a.indexOf("blue");
    }

  7. #7
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    ça commence à être clair ! Merci
    Si Je veux remplacer tout ce qui vient après la balise <html> Que faire ?

  8. #8
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    Citation Envoyé par AyManoVic Voir le message
    ça commence à être clair ! Merci
    Si Je veux remplacer tout ce qui vient après la balise <html> Que faire ?
    dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var a=document.getElementsByTagName('html')[0].innerHTML;
    var i=a.indexOf("blue");
    while (i >= 0) {
    	a=a.replace("blue","red");
    	i=a.indexOf("blue");
    }
    }

  9. #9
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    Merci Pour Votre Réponse , Je vais L'essayer

  10. #10
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    Re.
    Ne faudrait il pas faire un document.write pour voir les changements ?
    et est ce que ton dernier code donne tout ce qui est entre <html>et </html> ?
    Merci ^^

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    Ne faudrait il pas faire un document.write pour voir les changements ?
    il te faut effectivement réinjecter les modifications dans le document MAIS PAS AVEC document.write pour une simple raison c'est que tu vas réécrire ta fonction, qui contiendra le document.write, qui contiendra le document.write, qui contiendra le...cela s'appelle une boucle infinie.

    Tu peux toujours essayer de modifier le innerHTML ainsi modifier mais pas sûr que cela plaise à tous les navigateurs.

  12. #12
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonsoir,

    franchement placer tout le code de la page document.body.innerHTML dans une variable pour remplacer un mot par un autre ce n'est pas très optimisé

    Surtout que rien ne nous dit que "blue" ou "red" se trouvent exclusivement dans le texte : ces deux mots peuvent se retrouver par exemple dans la définition du style, ou dans un code javascript.

    Il ne serait pas mieux d'encadrer les mots en question par un <span> et de les modifier le moment venu ?
    Exemple :

    Code html : 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
    <body>
     
    <div> 
    du bla bla bla bla bla bla <span id="mot1" style="font-weight:bold">blue</span> bla bla bla bla bla
    </div>
     
    <div> 
    du bla bla bla bla bla bla <span id="mot2" style="font-weight:bold">blue</span> bla bla bla bla bla
    </div>
     
    <div> 
    du bla bla bla bla bla bla <span id="mot3" style="font-weight:bold">blue</span> bla bla <span style="color:blue">reste en bleu quoi qu'il arrive</span> bla bla bla bla bla bla
    </div>
     
    <input type="button" onclick="changeMot()" value="Cliquez ici" />
     
    </body>

    Code javascript : 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
     
    function changeMot()
    {
    	var i;
    	var tabSpan;
    	var reg = new RegExp("^(mot)","gi");
     
    	tabSpan = document.getElementsByTagName("span");
     
    	for (i=0; i<tabSpan.length; i++)
    	{
    		if (tabSpan[i].id.match(reg))
    		{
    			document.getElementById(tabSpan[i].id).innerHTML = "red";
    		}
    	}
     
    }

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/07/2011, 14h45
  2. [des panneaux dans une page web] que choisir ?
    Par oursblanc dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 02/12/2005, 11h02
  3. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18
  4. Positionner des cellules dans une page
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2005, 10h25
  5. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20

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