11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je rencontre un problème pour récupérer les marges droites et gauches des éléments avec getComputedStyle(), sous Firefox (pas essayé un autre).

Dans le css :
p{margin:0 1em 1.2em 1em}


Le résultat :
margin-top:0px
margin-right-value:
margin-bottom:14.4px
margin-left-value:
margin-left-ltr-source:
margin-left-rtl-source:
margin-right-ltr-source:
margin-right-rtl-source:


Impossible de mettre la main sur margin-left ou margin-right !

Quelqu'un aurait l'astuce qui déchire tout ?
Modifié par Manic5 (19 Nov 2007 - 18:38)
Vendu !

if ((/margin-(right|left).*/).test(style)) {
    (/margin-(right|left).*/).exec(style);
        style = 'margin-'+RegExp.$1;
}

document.defaultView.getComputedStyle(elt, null).getPropertyValue(style);


Comme cela, on force le navigateur a demander margin-left et margin-right plutôt qu'un truc bizarre.
Modifié par Manic5 (19 Nov 2007 - 14:29)
re !

Bon, ça bloque également avec le background-position.
Impossible de récupérer la valeur.
Au lieu de cela, je me paie tous les -moz-background...
C'est la mort cette focntion.
function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle) {
		try{ 
			strValue = document.defaultView.getComputedStyle(oElm, null).getPropertyValue(strCssRule); 
		}
		catch(e) { strValue = ""; }
	}
	else if(oElm.currentStyle) {
		try{
			strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
				return p1.toUpperCase();
			});
			strValue = oElm.currentStyle[strCssRule];
		} catch(e) {
			strValue = "";
		}
	}
	return strValue;
}