[JavaScript] Hauteur d'un élément <DIV>

Bonjour, je cherche à récupérer la hauteur d’un

D’abord un peu de code

[html]


[/html]

Donc on voit ici que j’affiche un titre mais que le contenu est chargé grâce à une requête Ajax (je pense que ca corce un peu les choses).

Je vous montre le css associé

#title { display:block; top:-600px; position:absolute; left: 50%; width: 800px; margin-left: -400px; /* moitié de la largeur */ text-align:center; font-size:300%; text-decoration:underline; background-color: #778282; color:#252e2e; }
Je perche mon titre grâce à top:-600px pour qu’il soit hors écran, le reste sert surtout à le centrer horizontalement. J’ai mis display: block; en croyant que ca allait résoudre mon problème…

Maintenant le javascript

Sous IE 7 ca me donne un bon résultat si il n’y a pas de saut de ligne, sous Firefox ca me renvoit 0.

Le contenu de mon div est du texte. Au début, je le chargeais avec un innerHTML après ma requête Ajax, puis j’ai changé pour le dom XML car je croyais que le problème venait de là. Hélas toujours sans résultat …

Question:
Comment puis je récupérer la hauteur de mon calque

???

Merci

document.getElementById(‹ title ›).style.height ?

Edit : belle tentative de ma part, mais cette fonction ne permet pas de retourner la valeur mais seulement de la définir. Désolé. :expressionless:


Et de manière plus générale pour avoir l'emplacement d'un div

[code]function get_offset(elem, pos)
{
	var offset = 0;
	while(elem) {
		offset += elem[pos];
		elem = elem.offsetParent
	}
	return offset
}

function get_full_position(id)
{
	var d = document.getElementById(id);
	var offsets = new Object;
	offsets.top = get_offset(d, "offsetTop");
	offsets.left = get_offset(d, "offsetLeft");
	offsets.width = d.clientWidth;
	offsets.height = d.clientHeight;
	return offsets;
}[/code]

Compatible ie 6/7, firefox 1.5/2, opera 8/9

Et de manière plus générale pour avoir l’emplacement d’un div

[code]function get_offset(elem, pos)
{
var offset = 0;
while(elem) {
offset += elem[pos];
elem = elem.offsetParent
}
return offset
}

function get_full_position(id)
{
var d = document.getElementById(id);
var offsets = new Object;
offsets.top = get_offset(d, “offsetTop”);
offsets.left = get_offset(d, “offsetLeft”);
offsets.width = d.clientWidth;
offsets.height = d.clientHeight;
return offsets;
}[/code]

Compatible ie 6/7, firefox 1.5/2, opera 8/9

Merci,
Je pensais que cela aurait été plus difficile vu que je rempli ce Div apres chargement avec de l’Ajax.

En effet, le problème venait de l’Ajax et surtout d’une grosse erreur de ma part.

Je lancais la fonction qui avait besoin de ces informations juste apres la fonction qui chargeait mon .
L’erreur est que Javascript n’attend pas la fin d’execution d’une fonction pour poursuivre le programme principal. La différence entre Firefox et IE est qu’un mouline plus que l’autre. Donc sur l’un je me trouvais avec mon correctement rempli et sur l’autre pas encore, donc sans l’information de hauteur.

J’ai donc déplacé l’appel de la fonction à la fin de la fonction de chargement de mon pour ne pas avoir de probleme du tout.

offsetHeight marche tres bien mais aussi clientHeight.

Merci de votre support et de votre aide.