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 :

Deux scripts qui s'annulent


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 22
    Par défaut Deux scripts qui s'annulent
    Bonjour, c'est encore moi...malheureusement =)

    J'ai un slideshow normal et je tente d'ajouter une gallerie d'image plus bas dans la page (qui n'a aucune relation avec le slideshow identifié plus haut).

    Lorsque je met le script de l'un, l'autre cesse de fonctionner et vice versa.

    l'un ressemble à ça:
    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
     
    <script>
    function runSlideShow(){
      var oImage = document.getElementById('Slideshow');
      if( oImage){ 
        if( oImage.filters){
          oImage.style.filter="blendTrans(duration=2)"
          oImage.filters.blendTrans.Apply();
        }
        showPic( numEncours);
        if( oImage.filters){
          oImage.filters.blendTrans.Play();
        }
        numEncours = ( numEncours +1) % nbImg;
        timer = setTimeout( runSlideShow, 5000); // 5s
      }
    ajoutez-y la déclaration des variables habituelle et etc.

    l'autre script est relié à un .js et le code est celui-ci:
    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
     
     
    <script type="text/javascript" src="vaslide.js"></script>
    <script type="text/javascript">
    	$('slideshow2').style.display='none';
    	$('wrapper').style.display='block';
    	var slideshow2=new GALERIE.slideshow2("slideshow2");
    window.onload=function (){
    		slideshow2.info="information";
    		slideshow2.thumbs="slider";
    		slideshow2.left="slideleft";
    		slideshow2.right="slideright";
    		slideshow2.scrollSpeed=4;
    		slideshow2.spacing=5;
    		slideshow2.active="#fff";
    		slideshow2.init("slideshow2","image");
    	}
    </script>
    Donc si je fait fonctionner la gallerie, le slideshow reste fixe. Si je fait fonctionner le slideshow, les images n'aparaissent pas dans la gallerie :/.

    J'ai lu dans un autre post (javascript et interférence avec d'autres javascript
    ) que cela pourrait être dû à une sorte de problème avec les gestionnaires d'événement. Cependant les propositions avancées pour régler ce problème était incompréhensible pour un néophyte comme moi.

    Si c'est bien cela le problème ou si vous penser que c'est autre chose, votre aide serait bien apprécié...

  2. #2
    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
    ils ne s'annulent pas, ils entrent en conflit...
    vu que tu semble utiliser jquery dans l'un des deux, regarde du cote de noConflict()http://api.jquery.com/jQuery.noConflict/
    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 !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    cela pourrait être dû à une sorte de problème avec les gestionnaires d'événement
    Oui, c'est ça...
    Lorsque tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload=function(){...};
    tu fais une affectation, ce qui signifie que onload est une propriété de l'objet window (dans ce cas), donc si tu fais plusieurs fois cette affectation, chaque affectation va écraser la précédente.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 22
    Par défaut
    Bonjour et merci pour vos réponses.

    ils ne s'annulent pas, ils entrent en conflit...
    vu que tu semble utiliser jquery dans l'un des deux, regarde du cote de noConflict()http://api.jquery.com/jQuery.noConflict/
    Je vais travailler sur cela durant les prochains jours, car en effet c'est un code JQuery que j'ai modifié (du moins, essayé de modifier).

    Pour ce qui est de ta réponse Bovino

    tu fais une affectation, ce qui signifie que onload est une propriété de l'objet window (dans ce cas), donc si tu fais plusieurs fois cette affectation, chaque affectation va écraser la précédente.
    Si le problème se situe à ce niveau, vais-je devoir le régler avec la fonction noConflict ou as-tu quelque chose d'autre à proposer?

    Merci encore, je vous reviens avec des nouvelles dès que je peux !

  5. #5
    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
    non il faut juste ne pas faire de window.onlaod et profiter du de jquery pour tout lancer
    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. #6
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 22
    Par défaut
    Je suis complètement perdu dans le champ...

    J'ai essayé, mais à chaque fois ma gallerie cesse de fonctionner dès que je change moindrement le 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
    15
    <script type="text/javascript" src="vaslide.js"></script>
    <script type="text/javascript">
    	$('slideshow2').style.display='none';
    	$('wrapper').style.display='block';
    	var slideshow2=new GALERIE.slideshow2("slideshow2");
    window.onload=function (){		slideshow2.info="information";
    		slideshow2.thumbs="slider";
    		slideshow2.left="slideleft";
    		slideshow2.right="slideright";
    		slideshow2.scrollSpeed=4;
    		slideshow2.spacing=5;
    		slideshow2.active="#fff";
    		slideshow2.init("slideshow2","image");
    	}
    </script>
    Je sais que la ligne de commande que je dois modifier est celle-ci. J'ai essayé de l'amené avec le noConflict ou le document.ready mais je n'y arrive pas. J'ai encore besoin d'un ptit coup de pouce =)

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il serait peut-être judicieux de nous montrer comment tu appelles runSlideShow()...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    simplement utiliser la norme
    addEventListener


    une solution SIMPLISIME consiste à ne surtout rien définir au niveau global pas même une fonction.
    de la sorte impossible d'avoir un script qui entre en conflit avec un autre. chacun dans son espace et le tour est joué.

    et pour ça pas besoin de lib ou de framewok JS propose tout ce qu'il faut.

    A+JYT

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    lourd à parier qu'il doit y avoir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="runSlideShow();">

  10. #10
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 22
    Par défaut
    Nosmoking, tu me fais peur, c'est bel et bien de cette façon que j'ai amené mon premier slideshow. J'avais remarqué que le problème pouvait se situer à ce niveau. Que proposes-tu?

    Merci encore pour vos réponses c'est vraiment apprécié...

  11. #11
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    faire ce que j'ai dis utiliser addEventListener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (window.addEventListener) {
      window.addEventListener('load', runSlideShow, false);
      window.addEventListener('load', myOtherStartMethod, false);
      window.addEventListener('load', function() {
        alert('this is onload event');
      }, false);
    } else if (window.attachEvent) {
      window.attachEvent('onload', runSlideShow);
      window.attachEvent('onload', myOtherStartMethod);
      window.attachEvent('onload', function() {
        alert('this is onload event');
      });
    }
    tu peux mettre autant de fonction au démarrage que tu veux il suffit d'utiliser la norme.

    A+JYT

Discussions similaires

  1. Script qui multiplie automatiquement par deux le résultat final
    Par bomonde dans le forum Shell et commandes GNU
    Réponses: 60
    Dernier message: 01/02/2013, 11h09
  2. Réponses: 0
    Dernier message: 10/10/2012, 18h11
  3. ajouter deux fonctions a un script qui liste un dossier
    Par abdellah63 dans le forum Langage
    Réponses: 1
    Dernier message: 19/06/2007, 22h16
  4. Script qui s'exécute deux fois ?
    Par ben53 dans le forum Langage
    Réponses: 1
    Dernier message: 29/01/2007, 15h56
  5. Que deux événements qui se passent en même temps.
    Par Melchisedec dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 03/08/2003, 14h24

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