11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, j'ai écrit un script qui fonctionne sous IE, mais Mozilla ne semblant pas reconnaitre la fonction javascript offsetWidth, ce script ne tourne pas sous mozilla.

Existe-t-il une fonction équivalente pour Mozilla?



var largeur1=document.getElementById("popupbox").offsetWidth;
var largeur2=document.getElementById("inpopupbox").offsetWidth;
var difference=(largeur1-largeur2)/9.3;
	
if(scrolling <difference) {....


}



Merci beaucoup

Jimo
Bonjour.
Je suis quasiment sûr d'avoir déjà vu les propriétés offsetXXX fonctionner avec firefox.
Peut-être ceci viendrait-il de la version ? j'ai la 1.00.
QuentinC a écrit :
Bonjour.
Je suis quasiment sûr d'avoir déjà vu les propriétés offsetXXX fonctionner avec firefox.
Peut-être ceci viendrait-il de la version ? j'ai la 1.00.


Bonjour,
Avec la version 0.8 cela fonctionne, c'est dans la suite du code que cela doit foirer.
var difference=(largeur1-largeur2)/9.3 +"px";

Il faut toujours préciser l'unité de mesure. Seul IE accepte de l'oublier Smiley eek .
var difference=(largeur1-largeur2)/9.3 +"px";

C'est pas ici que j'ajouterais le suffixe 'px'.
En l'ajoutant ici tu perds le type numérique de la variable pour la transformer en chaîne.
Par la suite, il a l'air de faire des vérifications qui risquent d'être faussés si tu rajoutes le px là.

Un moment donné, il doit y avoir un truc du style :
document.getElementById(...).style.left = difference;

c'est ici qu'il faut le rajouter, donc :
document.getElementById(...).style.left = difference + 'px';
Merci beaucoup pour vos conseils.

En fait le problème vient uniquement du fait que mozilla ne retourne pas les memes valeurs que IE pour la fonction OffsetWidth. Sous IE cette fonction retourne la largeur du div passé en paramètres, alors que mozilla retourne n'importe quoi.

Le rêve serait de trouver la fonction qui sous mozilla me retournerait la meme chose (un entier positif, représentant la largeur de l'élément en pixel) que la fonction suivante sous IE :


var largeur2=document.getElementById("inpopupbox").offsetWidth;


Si quelqun peut m'aider, il me sauve la vie et beaucoup de cheveux....

Bon après-midi

Jimo