Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 21h53   #1
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
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
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 22h08   #2
Membre expérimenté
 
Avatar de buggen25
 
Inscription : août 2008
Messages : 510
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 510
Points : 595
Points : 595
Bonsoir,
Le mieux serait de créer un div, et mettre de ce dont tu as besoins a l'interieur
Code :
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 :
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 :
1
2
 
<img src="images/bouton.png" onclick="mettreEnRouge();" />
Cordialement
__________________
If you type Google into Google, you Can break the internet" - The IT Crowd
buggen25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 04h11   #3
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
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 :
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 :
<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
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h13   #4
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
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..
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h28   #5
Membre expérimenté
 
Avatar de buggen25
 
Inscription : août 2008
Messages : 510
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 510
Points : 595
Points : 595
Bonjour,
Tu veux remplacer le body de ta page web je pense, dans ce cas c'est possible
1- Code html
Code :
1
2
 
<input type="Submit" value="Mettre en rouge" onclick="mettreEnRouge();" />
2-Ensuite mettre dans ton code javascript
Code :
1
2
3
4
5
 
function mettreEnRouge(){
      var reg=new RegExp("(blue)", "g");
      document.body.innerHTML = document.body.innerHTML.replace(reg, "red");
}
__________________
If you type Google into Google, you Can break the internet" - The IT Crowd
buggen25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h31   #6
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
ceci te conviendrait il ?
Code :
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");
}
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h28   #7
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
ça commence à être clair ! Merci
Si Je veux remplacer tout ce qui vient après la balise <html> Que faire ?
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h36   #8
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
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 :
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");
}
}
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h53   #9
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Merci Pour Votre Réponse , Je vais L'essayer
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h20   #10
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
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 ^^
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 19h24   #11
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonjour,
Citation:
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 00h47   #12
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 795
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 795
Points : 5 119
Points : 5 119
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 :
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 :
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";
		}
	}
 
}
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h40.


 
 
 
 
Partenaires

Hébergement Web