Bonjour à tous,

Je rencontre un problème sous Chrome et Safari avec offset* voici mon script réduit au minimum :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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....