offsetWidth et offsetHeight sous Chrome et Safari
Bonjour à tous,
Je rencontre un problème sous Chrome et Safari avec offset* voici mon script réduit au minimum :
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
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<script type="text/javascript">
var Diap = function()
{
//id de l'élément
this.actionBar = null ;
//width de l'élément
this.actionBarW = null ;
//height de l'élément
this.actionBarH = null ;
//élément
this.actionBarEl = null ;
}
Diap.prototype.configuration = function()
{
this.actionBarEl = document.getElementById(this.actionBar) ;
this.actionBarW = this.actionBarEl.offsetWidth ;
this.actionBarH = this.actionBarEl.offsetHeight ;
alert(this.actionBar+" : "+this.actionBarW+" - "+this.actionBarH) ;
}
</script>
</head>
<body>
<img src="actionBar.gif" alt="" id="actionBar" />
<script type="text/javascript">
var diap = new Diap() ;
diap.actionBar = "actionBar" ;
diap.configuration() ;
</script>
</body>
</html> |
Le alert me renvoie bien l'id "actionBar" mais 0 pour la largeur et la hauteur de mon image. Je ne vois vraiment pas pourquoi d'autant que cela fonctionne sur IE Moz et Opéra et aucune erreur de déclarée dans la console firebug.
De plus j'ai essayé un petit script tout simple celui-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<html>
<head>
<script type="text/javascript">
function talking()
{
alert(document.getElementById('actionBar').offsetWidth) ;
}
</script>
</head>
<body>
<img src="actionBar.gif" alt="" id="actionBar" onclick='talking() ;' />
</body>
</html> |
Et la ça fonctionne bien sur toutes les plateformes.
Merci à tous pour vos réponses.:)
EDIT :
Avec setTimeout("diap.configuration()", 13) ; ça règle mon problème qui maintenant je le sais vient du fait que mon image n'est pas encore chargée, pourtant l'appel du javascript se fait après l'image, mystère, mystère....