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 :

[DOM] Javascript et firefox


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut [DOM] Javascript et firefox
    Bonsoir tout le monde,

    J'essaie pour l'instant de mettre au point une petite galerie photo, j'ai quelque peu alléger le code (pas mis les CSS) de manière à ce qu'il ne soit pas trop long à parcourir. Sous ie6 - ie7, ça fonctionne sans problème. Mais firefox semble rétissant... Quelqu'un voit le pourquoi du comment?

    Merci.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <script>
    		function initializeScripts(){
    			initializeClickableImages();
    		}
     
    		function initializeClickableImages(){
    			clickableImages = findTagsByAttribute('img','className','clickable');
    			for(ci=0 ; ci<clickableImages.length ; ci++){
    				window.status +="Image" + parseInt(ci+1) + " initialized"; 
    				clickableImage = clickableImages[ci];
    				clickableImage.onclick=displayImage;
    			}		
    		}
     
    		function displayImage(){
    			tdCentre = findTagsByAttribute('td','className','frame centre')[0];
     
    			img = new Image();
    			img.src = this.src;
    			img.width = this.width;
    			img.height = this.height;
    			img.alt=this.alt;
    			xyFactor = this.width/this.height;
    			if(xyFactor>0){
    				img.width=460;
    				img.height=parseInt(img.width/xyFactor);
    			}else if(xyFactor<0){
    				img.setAttribute("height","320");
    				img.setAttribute("width",parseInt(img.height)*xyFactor);				
    			}else{
    			}
    			tdCentre.innerHTML="<center>"+img.outerHTML+"<p/><span style='color: #eeeeee; padding: 10 0 10 0;'>"+img.alt+"</span></center>";	
    		}
     
    		function findTagsByAttribute(tagName, attributeName, attributeValue){
    			tagList = document.getElementsByTagName(tagName);
    			return findElementsByAttribute(tagList, attributeName, attributeValue)
    		}
     
    		function findElementsByAttribute(elmList, attributeName, attributeValue){
    			elms = new Array();
    			for(i=0 ; i<elmList.length ; i++){
    				elm = elmList[i];
    				if(elm.getAttribute(attributeName).toUpperCase()==attributeValue.toUpperCase()){
    					elms[elms.length]=elm;
    				}
    			}
    			return elms;
    		}
    </script>
     
    <div onMouseOver="initializeScripts();">	
    	<table class="frame" ">
    		<tr width="">	
    			<td class="frame miniatures">
    				Cliquez sur une photo pour l'aggrandir
    				<p/>
    				<?php                           
                     print "<img class='clickable' src='./Paris/1.jpg' width='40px'/>";
                                    ?>
    			</td>	
    		</tr>
    		<tr width="">
    			<td class="frame centre" >
     
    			</td>
    		</tr>
    	</table>
    </div>

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Et si tu nous disais à quel endroit ? As-tu une erreur Javascript ? Que dit Firebug (si tu ne l'as pas, installe-le, ça sauve la vie des programmeurs Javascript) ?

  3. #3
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Bonjour Bisûnûrs,

    Je n'ai pas encore firebug (comme c'est un truc que je développe hors boulot, je n'ai pas la possibilité de tester avant ce soir.) En fait, il n'y a aucune erreur js retournée... Sur ie, je passe sur la div, le js initialise la chose et je peux cliquer sur ma photo. Par contre, sous firefox, pas de message d'erreur, je passe sur la zone mais rien ne se produit... Je reste perplexe.

    En tout cas, merci pour la piste firebug, j'essaierai dès mon retour.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Si tu n'as ni la Webdeveloper Toolbar ni Firebug installés, Firefox ne parlera pas des masses concernant les erreurs Javascript.

    Après, ton bug Firefox peut venir d'un problème au niveau HTML (je vois dans ton code HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <table class="frame" ">
    un guillemet en trop), alors que IE n'est pas trop regardant ni contrariant, Firefox lui n'aime pas trop ce genre de choses.

  5. #5
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Re...

    J'ai installé firebug qui m'indique cette ligne avec insistance... Mais je dois avouer que je ne comprends pas trop pourquoi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(elm.getAttribute(attributeName).toUpperCase()==attributeValue.toUpperCase()){

    elm.getAttribute(attributeName) has no properties
    findElementsByAttribute([img.clickable 2.jpg, img.clickable 3.jpg, img.clickable 4.jpg, 41 more...], "className", "clickable")test (line 199)
    findTagsByAttribute("img", "className", "clickable")test (line 192)
    initializeClickableImages()test (line 162)
    initializeScripts()test (line 158)
    onmouseover(mouseover clientX=0, clientY=0)


    J'ai quand même et dans le doute viré le " qui servait à rien...

  6. #6
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Je me suis remis sur la source et je ne vois toujours pas ce que c'est... En fait, Firebug affiche 2 erreurs par miniature de photo survolée...

  7. #7
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    En débugant avec de alert, j'ai vu que elm.getAttribute(attributeName).toUpperCase() était toujours null sous firefox alors qu'il s'initialise à clickable sous IE. Hors clickable est le nom de la classe de la balise image.
    Quelqu'un connait la source de ce comportement?

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Hello

    Tu as un element très interessant sous Firebug ; La console.

    Tu peux faire un console.log, qui est plus explicite qu'un alert, et console.trace, qui remonte les appels à une fonction.
    Utilise console.log(elm) dans findElementsByAttribute, puis click droit et "Inspect In Dom Tab" pour voir le contenu de ton objet.

    Utilise également la méthode push() pour mettre un élement qui correspond à tes attentes dans la liste de retour (dans findElementsByAttribute).

  9. #9
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    ok, je vais tenter le coup... Ce que j'ai du mal à comprendre, c'est pourquoi ça fonctionne sous ie et pas sur ff...

  10. #10
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Re...

    Sous FF, les attibuts de eml sont toujours à null... Je ne comprends franchement pas pourquoi parce que lorsque j'envoie manuellement les valeurs dedans, ça fonctionne... Quelqu'un sait d'où ça peut venir???

    Merci.

Discussions similaires

  1. [DOM] Compatibilité Javascript et Firefox
    Par Madness64 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/01/2009, 17h39
  2. [DOM] [javascript] pb IE/Firefox
    Par topolino dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/12/2005, 10h20
  3. processeur javascript et firefox
    Par arnobidul dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/08/2005, 11h09
  4. [XML][XSL][DOM][JAVASCRIPT]melanger le tout, laisser reposer
    Par mitsein dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/07/2004, 16h56

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