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 27/01/2012, 22h20   #1
Futur Membre du Club
 
Homme Michel
développeur javascript et PHP en rech d'emploi
Inscription : juillet 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : développeur javascript et PHP en rech d'emploi

Informations forums :
Inscription : juillet 2011
Messages : 82
Points : 16
Points : 16
Par défaut this.style.color undefined en paramètre

dans mon fichier "dhtml - polices.htm", les 2 lignes suivantes ne se comportent pas pareil :

Code :
1
2
	<li><a href="http://www.mmm.fr" onmouseover="alert(getRouge(document.monformulaire.txt1.style.color))" >www.mmm.fr</a></li><br>
	<li><a href="http://www.mmm.fr" onmouseover="alert(getRouge(this.style.color))" >www.mmm.fr</a></li>
Pourquoi en envoyant this à une fonction javascript, celle-ci peut lire la chaine this.style.color, alors qu'en envoyant en paramètre this.style.color, ma fonction :

Code :
1
2
3
4
5
6
7
8
function getRouge(chaineRgb) {
	var c=chaineRgb;
	if ((c==undefined) || (c=="")) {c="rgb(couleur inconnue,couleur inconnue,couleur inconnue)";}
	var p1=c.indexOf("(");
	var p2=c.indexOf(",");
	var rouge=c.substr(p1+1,p2-p1-1);
	return rouge;
}
me renvoie "couleur inconnue".
michelg77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 10h09   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 078
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 078
Points : 45 213
Points : 45 213
Code :
<li><a href="http://www.mmm.fr" onmouseover="alert(getRouge(this.style.color))" >www.mmm.fr</a></li>
Dans ce cas la portée de this est la balise a
Sans doute le style de cette balise n'est il pas défini ?

Code :
<li><a href="http://www.mmm.fr" style="color:blue" onmouseover="alert(getRouge(this.style.color))" >www.mmm.fr</a></li>
devrait afficher blue...

essaye avec getComputedStyle() qui récupère le style généré
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 17h20   #3
Futur Membre du Club
 
Homme Michel
développeur javascript et PHP en rech d'emploi
Inscription : juillet 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : développeur javascript et PHP en rech d'emploi

Informations forums :
Inscription : juillet 2011
Messages : 82
Points : 16
Points : 16
Par défaut style="color:red"

j'obtiens comme chaine, au lieu du rgb(,,) attendu, la chaine "red".

par contre, si je mets :

Code :
style="color:rgb(255,0,0)"
j'obtiens bien ce que je cherche.
C'est donc effectivement un défaut d'initialisation.

Pour le reste, je cherche encore.
michelg77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 18h35   #4
Futur Membre du Club
 
Homme Michel
développeur javascript et PHP en rech d'emploi
Inscription : juillet 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : développeur javascript et PHP en rech d'emploi

Informations forums :
Inscription : juillet 2011
Messages : 82
Points : 16
Points : 16
Par défaut getComputedStyle : c'est pas la panacée !

j'ai récupéré la fonction OffsetStyle sur :

http://www.developpez.net/forums/d58...-actuel-objet/

mais ça ne fonctionne pas bien sous chrome :

sans définir les valeurs par css, j'obtiens semble-t-il les bonnes valeurs, mais le problème, c'est que si j'ajoute le code CSS, l'affichage du bouton est modifiée, mais ma fonction me renvoie toujours les mêmes valeurs:

fontSize = '16px'
padding = ''
color = 'rgb(0, 0, 0)'
font-weight = 'normal'
text-decoration = 'none'

mon programme OffsetStyle.htm:
Code :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<script type="text/javascript" src="fonctions_mg.js"></script>
<script language="JavaScript" type="text/javascript">
 
function OffsetStyle(Obj,Prop){
	var x = Obj;
	if (x.currentStyle){
		var y = x.currentStyle[Prop];
	} else {
		if (window.getComputedStyle){    
			var y = window.getComputedStyle(x,null)[Prop];
		}
	}
	return y;
}
 
function detaillePolice(objet) {
	var t=new Array;
	p_t=0
	t[p_t++]="fontSize";
	t[p_t++]="padding";
	t[p_t++]="color";
	t[p_t++]="font-weight";
	t[p_t++]="text-decoration";
	var msg="";
	//var msg2="";
	for (var i=0;i<p_t;i++) {
		msg+=t[i]+" = '"+OffsetStyle(objet,t[i])+"'\n";
		//msg2+=t[i]+" = '"+OffsetStyle(objet,t[i])+"'<br>";
	}
	return msg;
	//document.write(msg2);
}
</script>
<body>
<!--style type="text/css">
input {
	text-decoration:none;
	font-weight:bold;
	color:#009;
}
</style-->
<input type="button" onclick="alert(detaillePolice(document.body))" value='clique ici pour voir les détails de style' />
 
</body>
 
</html>
michelg77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 18h41   #5
Futur Membre du Club
 
Homme Michel
développeur javascript et PHP en rech d'emploi
Inscription : juillet 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : développeur javascript et PHP en rech d'emploi

Informations forums :
Inscription : juillet 2011
Messages : 82
Points : 16
Points : 16
Par défaut j'ai donc pensé modifier le pramètre document.body

Code :
<input type="button" name="bouton1" onclick="alert(detaillePolice(document.bouton1))" value='clique ici pour voir les détails de style' />
mais la encore, problème : cannot read property 'currentStyle' of undefined
michelg77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 18h45   #6
Futur Membre du Club
 
Homme Michel
développeur javascript et PHP en rech d'emploi
Inscription : juillet 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : développeur javascript et PHP en rech d'emploi

Informations forums :
Inscription : juillet 2011
Messages : 82
Points : 16
Points : 16
Par défaut milles excuses, j'avais oublié de préciser le nom du formulaire

avec :

Code :
1
2
3
<form name="form1">
<input type="button" name="bouton1" onclick="alert(detaillePolice(document.form1.bouton1))" value='clique ici pour voir les détails de style' />
</form>
ça fonctionne nickel ! je mets donc le tag résolu.
michelg77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 18h45   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 078
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 078
Points : 45 213
Points : 45 213
http://www.developpez.net/forums/d49...-currentstyle/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web