Bonjour
J'ai écris une fonction permettant de récupérer les dimensions d'un élément HTML.
Pour cela, il faut créer un élément avec createElement et le passer en paramètre à la fonction getDimension.
Cette fonction se contente juste d'ajouter l'élément dans le document, de récupérer ses dimensions et de le supprimer.
Exemple d'utilisation :var spanLibelle = document.createElement("span");
spanLibelle.id = "spanLibelle";
spanLibelle.className = "libelleCategorie";
spanLibelle.innerHTML = "Mon libellé";
var dimensionLibelle = getDimension(spanLibelle);
...
// Objet dimension
function Dimension(width, height){
this.width = width;
this.height = height
}
// Méthode de récupération des dimensions d'un élément
function getDimension(element){
// Affecte un ID par défaut à l'élément s'il n'en a pas
if (!element.id) element.id = "testDimension";
// Ajoute l'élément au document
document.body.appendChild(element);
// Récupère les dimensions de l'élément
var dimension = new Dimension(
document.getElementById(element.id).offsetWidth,
document.getElementById(element.id).offsetHeight);
// Supprime l'élément du document
document.body.removeChild(element);
return dimension;
}
Ca marche très bien avec Internet Explorer et Firefox, par contre sous Opéra j'obtiens des dimensions nulles !
Savez-vous pourquoi et comment y remédier ?
Merci de votre aide