Bonjour à tous,
Je rencontre un problème sous Chrome et Safari avec offset* voici mon script réduit au minimum :
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.
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>
De plus j'ai essayé un petit script tout simple celui-ci :
Et la ça fonctionne bien sur toutes les plateformes.
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>
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....
Partager