J'essaie d'obtenir l'état calculé du rayon de la bordure d'un élément avec ce code :
function _elementCurrentStyle(element, styleName){
if (element.currentStyle){
var i = 0, temp = "", changeCase = false;
for (i = 0; i < styleName.length; i++)
if (styleName[i].toString() != '-'){
temp += (changeCase ? styleName[i].toString().toUpperCase() : styleName[i].toString());
changeCase = false;
} else {
changeCase = true;
}
styleName = temp;
return element.currentStyle[styleName];
} else {
return getComputedStyle(element, null).getPropertyValue(styleName);
}
}
var borderRadiusCheck = ["-moz-border-radius-bottomright","border-radius","border-bottom-right-radius","-webkit-border-bottom-right-radius","-khtml-border-radius-bottomright","-khtml-border-bottom-right-radius"];
var i = 0, temp = "";
for (i = 0; i < borderRadiusCheck.length; i++){
temp = _elementCurrentStyle(myElement, borderRadiusCheck[i]);
if (temp)
break;
}
La variable "myElement" est un élément HTML dont le rayon de la bordure est fixé à "20px". (Soit en le définissant dynamiquement, soit avec CSS)
La variable "temp" contient la chaîne borderRadius ("20px"). Ce code fonctionne sous IE, FF et Chrome, mais sous Opera, j'obtiens une chaîne vide lorsque j'essaie d'obtenir "border-radius" ou "border-bottom-right-radius", et lorsque je l'appelle avec d'autres, il renvoie "undefined".
Peu importe que j'obtienne border-radius ou border-bottom-right-radius car toutes les bordures de cet élément HTML sont identiques.
Avez-vous une idée du nom de la propriété de style que je dois appeler pour obtenir le rayon ?
Merci pour votre aide.