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 :

boucle qui s'arrête avec firefox


Sujet :

JavaScript

  1. #21
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    juste une limite à ce script telquel, si l'on a beaucoup de cellules
    ... à faire clignoter.
    Le problème n'est pas que le tableau soit grand, mais que beaucoup de cellules clignotent.

    Or, si on fait clignoter des cellules, c'est à priori pour les faire ressortir du lot.

    Difficile d'envisager une application fonctionnelle du cas extrême que tu as codé où toutes les cellules clignotent, et donc où ce problème se poserait (c'est d'ailleurs surtout avec IE6 que c'est le b*** : avec FF2, tout est synchro )
    Ou alors il faut le proposer à ceux qui agrémentent leur site de flocons de neige : ça ferait la guirlande

    A+

  2. #22
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par scavenger Voir le message
    on dirait un jeu ...
    Ca m'a fait penser au tableau de bord de l'Entreprise

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    tu as plusieurs tables sur la page ???

    si tu n'en a qu'une:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByTagName('table')[0]
    oui enfin voilà : c'est ok quand j'en ai qu'une, sinon il faut boucler ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var TabCells=document.getElementById(document.getElementsByTagName('table')[0].id).getElementsByTagName('td');

  4. #24
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par scavenger Voir le message
    sinon il faut boucler ...
    Oui mais plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (i=0; i<document.getElementByTagName('table').length; i++) {
    ...
    TabCells=document.getElementByTagName('table')[i].getElementsByTagName('td')
    ...
    }
    Ceci dit, si c'est pour boucler sur toutes les tables, tu n'as plus besoin de cibler la/les table(s) : suffit de boucler sur les td de la page.

    L'avantage de l'id est de pouvoir faire clignoter une table et pas une autre (au niveau utilisateur et non serveur)

    A+

  5. #25
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var i=0;
    while(document.getElementByTagName('table')[i]){ 
    TabCells=document.getElementByTagName('table')[i].getElementsByTagName('td')
     
    ....
    i++;
    }
    arf grilled ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #26
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    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
    function clignotte(mycell,Class){
      	mycell.className=(mycell.className=='Blank')?Class:'Blank';
    		}
     
    function run(mycell,Class){
     		mycell.flash=setInterval(function(){clignotte(mycell,Class)},500);
    	 }
     
    function populate(){
    for (n=0; n<document.getElementsByTagName('table').length; n++) {
    	TabCells=document.getElementsByTagName('table')[n].getElementsByTagName('td');
     	var i=0;
     	while(TabCells[i]){
             if(TabCells[i].className.indexOf("cligno")==0){
                     Class=TabCells[i].className.replace('cligno','');
             			 run(TabCells[i],Class)} 
             i++;
            }
     }
    }
    ne marche plus sous IE ...

  7. #27
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Ton identifiant Class est peut être mal choisi.

    Essaye avec un plus "perso"

    EDIT : ceci dit, une description un peu plus précise (euphémisme !!) de l'erreur aurait été bienvenue

    A+

  8. #28
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    booof, Class, class, la casse compte en js, non ?

    bref j'ai tout changé ainsi et ça marche toujours très bien (ça clignotte avec 2 couleurs !) :
    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
     
    function clignotte(mycell,lesClass){
      	mycell.className=(mycell.className==lesClass[1])?lesClass[0]:lesClass[1];
    		}
     
    function callClignotte(mycell,lesClass){
     		mycell.flash=setInterval(function(){clignotte(mycell,lesClass)},500);
    	 }
     
    function lanceClignotage(){
    alert(document.getElementsByTagName('table').length);
    for (n=0; n<document.getElementsByTagName('table').length; n++) {
    	var TabCells=document.getElementsByTagName('table')[n].getElementsByTagName('td');
     	var i=0;
     	while(TabCells[i]){
             if(TabCells[i].className.indexOf("cligno")==0){
                     lesClass=TabCells[i].className.replace('cligno','').split(' ');
             			 callClignotte(TabCells[i],lesClass)} 
             i++;
            }
     }
    }
     
    on écrit les TD comme ça :
    <td class="clignoClass1 Class2">...</td>
    Le truc c'est qu'il ne détecte que 1 tableau sous firefox, et 0 sous IE.
    J'utilise également dojo que je déclare dans mon HEAD ... et mes tableaux sont dans ce qu'ils appellent des ContentPane, qui ne sont que des div...

    Bref ça fatigue... un coup ça marche, et dès que j'ajoute beaucoup de code, pafff... Ca n'a rien à voir avec ce qui a été posté ici je pense, donc je vais chercher dans mon coin :'(

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    je confirme le caractère aléatoire de l'erreur

    Ca fonctionne bien et ça détecte tous les tableaux 1 fois sur 5 en moyenne sous firefox

    Sous IE "document.getElementsByTagName('table').length" retourne systématiquement 0

    je n'ai cependant aucune erreur de code (j'utilise l'extention Web Developper 1.1.6 sous firefox)

  10. #30
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par scavenger Voir le message
    je confirme le caractère aléatoire de l'erreur

    Ca fonctionne bien et ça détecte tous les tableaux 1 fois sur 5 en moyenne sous firefox

    Sous IE "document.getElementsByTagName('table').length" retourne systématiquement 0
    D'où est-ce que tu appelles la fonction ?
    Dans le onload du <body> il ne devrait pas y avoir ce côté aléatoire

    A+

  11. #31
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    c'est dojo toolkit qui fout la grouille

    il empêche le comptage des balises contenues dans les containers

    c relou, et leur forum y marche pas je ne peux pas m'enregistrer, je suis obligé d'aller sur l'irc pour leur parler et c des relous, isl répondent que quand ils ont le temps

    RESOLU !

    dojo + ContentPane = iFrames !!
    Il faut mettre le onload=fonction() dans le <div> le plus lourd de la page, ainsi il sera chargé en dernier et fera bien son office.

  12. #32
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par scavenger Voir le message
    c'est dojo toolkit qui fout la grouille

    il empêche le comptage des balises contenues dans les containers
    Tu peux poser cette nouvelle question ici.
    Tu auras peut être plus de chance ...

    A+

  13. #33
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Par défaut
    merci ! j'avais pô vu que ça existait ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Infobulle qui se décale avec Firefox
    Par nico44530 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 21/09/2012, 11h20
  2. Boucle avec tempo qui s'arrête a minuit
    Par thedjtony dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 23h35
  3. Horloge BIOS qui s'arrête avec le PC
    Par fenkys dans le forum Composants
    Réponses: 3
    Dernier message: 04/12/2007, 18h53
  4. Réponses: 1
    Dernier message: 12/01/2007, 11h20
  5. [VBA-E]une boucle qui ne s'arrète pas
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/02/2006, 18h05

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