IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

bug d'interprétation firefox


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut bug d'interprétation firefox
    Bonjour,
    Je vous explique vite fait mon programme, c'est un calendrier style google-calendar avec une <table></table> qui me dessine l'emploi du temps et par dessus je place mesblocs d'horaire.
    Sous firefox j'ai un problème pour placer mes blocs, voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function placer(colonne,ligne,intervalle,temps)
    		{
    			var monBloc =document.getElementById("jour"+colonne+"numligne"+ligne);
    			alert(monBloc.innerHTML);
    			var coin=document.getElementById("c0h0");
    			var pos=FindPos(coin);
    			pos['X']+=(coin.offsetWidth)*colonne;
    			pos['Y']+=(coin.offsetHeight)*(ligne/intervalle);
    			monBloc.style.height=coin.offsetHeight*(temps/intervalle)+1;
    			monBloc.style.width=coin.offsetWidth+1;
    			monBloc.style.left=pos['X'];
    			alert(monBloc.style.left);
    			monBloc.style.top=pos['Y'];
    		}
    Le alert(monBloc.style.left) me retourne une chaine vide et le alert(monBloc.innerHTML) me retourne ce qu'il faut... J'ai vérifié pos['X'] me retourne bien la bonne valeur...
    Je précise que sous IE tout marche nikel et les alert me retourne ce qu'il faut...
    LE pire c'est que cela marchait sous firefox avant que je ne mette la doctype et que je mette tout le document aux normes w3c...

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Braillane
    Bonjour,
    Je vous explique vite fait mon programme, c'est un calendrier style google-calendar avec une <table></table> qui me dessine l'emploi du temps et par dessus je place mesblocs d'horaire.
    Sous firefox j'ai un problème pour placer mes blocs, voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function placer(colonne,ligne,intervalle,temps)
    		{
    			var monBloc =document.getElementById("jour"+colonne+"numligne"+ligne);
    			alert(monBloc.innerHTML);
    			var coin=document.getElementById("c0h0");
    			var pos=FindPos(coin);
    			pos['X']+=(coin.offsetWidth)*colonne;
    			pos['Y']+=(coin.offsetHeight)*(ligne/intervalle);
    			monBloc.style.height=coin.offsetHeight*(temps/intervalle)+1;
    			monBloc.style.width=coin.offsetWidth+1;
    			monBloc.style.left=pos['X'];
    			alert(monBloc.style.left);
    			monBloc.style.top=pos['Y'];
    		}
    Le alert(monBloc.style.left) me retourne une chaine vide et le alert(monBloc.innerHTML) me retourne ce qu'il faut... J'ai vérifié pos['X'] me retourne bien la bonne valeur...
    Je précise que sous IE tout marche nikel et les alert me retourne ce qu'il faut...
    LE pire c'est que cela marchait sous firefox avant que je ne mette la doctype et que je mette tout le document aux normes w3c...
    Quand on met une dimension ou valeur sur un élément il ne faut pas oublier les unités. Dans ton cas tu rajoutes
    +"px";

    après chaque valeur caculer et roulez \o/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pos['X']+=(coin.offsetWidth)*colonne;
    			pos['Y']+=(coin.offsetHeight)*(ligne/intervalle)+"px";
    			monBloc.style.height=coin.offsetHeight*(temps/intervalle)+1+"px";
    			monBloc.style.width=coin.offsetWidth+1+"px";
    			monBloc.style.left=pos['X']+"px";
    			monBloc.style.top=pos['Y']+"px";

  3. #3
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    exact!!! merci beaucoup, c'était sa!!!
    Mais maintentenant j'ai un autre problème... FFet IE ne me place pas les blocks de la meme manière... Sur FF les blockssont déplacé de 3px sur la gauche...
    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
    function FindPos(AObject)
    		{
    			var posX = 0, posY = 0;
    			do
    			{
    				posX += AObject.offsetLeft;
    							alert(posX);
    
    				posY += AObject.offsetTop;
    				AObject = AObject.offsetParent;
    			}
    			while( AObject != null );
    			var pos = [];
    			pos['X'] = posX;
    			pos['Y'] = posY;
    			return pos;
    		}
    		
    		function placer(colonne,ligne,intervalle,temps)
    		{
    			var monBloc =document.getElementById("jour"+colonne+"numligne"+ligne);
    			var coin=document.getElementById("c"+colonne+"h"+ligne);
    			var pos=FindPos(coin);
    			monBloc.style.height=(coin.offsetHeight*(temps/intervalle))+"px";
    			monBloc.style.width=coin.offsetWidth+"px";
    			monBloc.style.left=pos['X']+"px";
    			monBloc.style.top=pos['Y']+"px";
    		}
    Après moultes tests, c'est le offset desparents qui ne retournent pas la meme chose....
    Comment faire???

Discussions similaires

  1. Différence interprétation firefox mac/pc.
    Par castelcerf dans le forum Langage
    Réponses: 1
    Dernier message: 11/11/2009, 22h11
  2. Bug affichage sous Firefox mais pas sous IE
    Par Mat0x dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/07/2008, 19h28
  3. [Div] Différence d'interprétation FireFox/IE
    Par hedgehog dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 16/10/2007, 12h03
  4. [C#] Bug sous Mozilla Firefox
    Par stailer dans le forum ASP.NET
    Réponses: 7
    Dernier message: 18/04/2007, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo