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 :

Conflit entre deux js dans une page HTML (inclure plusieurs js)


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Conflit entre deux js dans une page HTML (inclure plusieurs js)
    Bonjour,

    Je débute en javascript et j'ai présentement un problème dont je n'arrive pas à trouver la solution... Ca fait déjà un bon moment que j'essais un peu toutes les solutions que je trouve sur différents forum et je n'y arrive pas... Alors voilà je m'explique.

    J'ai deux fichiers (js) contenants du code JS (ça va de soit :p ) Les deux codes fonctionnent séparément dans une page html, mais lorsque j'appel les deux fichiers js dans ma page html, c'est soit l'un ou soit l'autre qui marche...


    Voici comment j'appel mes js dans ma page html:

    <script type="text/javascript" src="js/zoom.js"></script>
    <script type="text/javascript" src="js/menu_utram.js"></script>

    et ce entre les balises <head></head>.

    Voici maintenant le code de mes js:

    menu_utram.js:


    Code cpp : 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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
     
    var object = new Array();
     function Slide(N,oCont){
     this.N  = N;
    <!-- arrivée du menu par le haut-->  
     this.S  = -1.1;
    <!-- arrivée du menu par le haut-->
     this.object = new Array();
     this.CObj = function (parent,N){
     this.parent = parent;
     this.N = N;
     this.obj = parent.frm[N];
     this.tit = this.obj.firstChild;
     this.div = this.obj.getElementsByTagName("div" )[1];
     this.div.style.visibility = "hidden";
    <!--espacement des section du menu à l'arrivée-->  
     this.y0 = N * 18;
    <!--espacement des section du menu à l'arrivée-->    
     this.Y1 = this.y0;
     this.obj.style.top = this.y0;
     this.obj.style.height = parent.H - (parent.NF) * 18-0;
     this.obj.style.visibility = "visible";
     this.obj.parent = this;
     this.run = false;
     this.move = function(){
     with(this){
     dy = (y1-y0)/parent.S;
    <!--.1 pour espace en bas de plan du site-->    
     if(Math.abs(dy)>.1){
    <!--.1 pour espace en bas de plan du site-->        
     y0+=dy;
     obj.style.top = Math.round(y0);
     setTimeout("object["+parent.N+"].object["+N+"].move();", 16);
     } else {
     run = false;
     if(dy>0)div.style.visibility="hidden";
     else if(N>0)parent.object[N-1].div.style.visibility="hidden";
     
     }
     
     }
     
     }
     this.obj.onmouseover = function(){
     with(this.parent){
     if(!run){
     run = true;
     div.style.visibility="visible";
     for(i=0;i<=N;i++){
     parent.object[i].y1 = i*18;
     parent.object[i].move();
     }
     for(i=N+1;i<parent.NF;i++){
     parent.object[i].y1 = parent.H-(parent.NF-i)*18;
     parent.object[i].move();
     
     
     
        }
     
       }
     
      }
     
     }
     
    }
    this.frm = document.getElementById(oCont);
    this.H = parseInt(this.frm.style.height);
    this.frm = this.frm.getElementsByTagName("span" );
    this.NF = this.frm.length;
    for(i=0;i<this.NF;i++) this.object[i] = new this.CObj(this, i);
    <!--position des sections-->    
    this.object[0].obj.onmouseover();
    <!--position des sections-->    
    <!--vitesse d'apparition du menu-->      
    this.S = 5;
    <!--vitesse d'apparition du menu-->      
    }
    window.onload = function(){object[0] = new Slide(0, "frames" );
    preload();
    }
    //-->
    <!-- fin java menu karine-->

    zoom.js:


    Code cpp : 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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
     
     
    var ym=0;
    var my=0;
    createElement = function(container, type, param){
    o=document.createElement(type);
    for(var j in param)o[j]=param[j];
    container.appendChild(o);
    return o;
    }
    mooz = {
    O:[],
    /////////
    mult:6,
    nbI:5,
    /////////
    rwh:0,
    imgsrc:0,
    W:0,
    B:0,
    Xoom:function(M){
     this.o = createElement(document.getElementById("zoom" ), "spane", {
      'className':'spaneslides'
     });
     img = createElement(this.o, "img", {
      'className':"imgslides",
      'src':mooz.imgsrc[M%mooz.imgsrc.length].src
     });
     spa = createElement(this.o, "spane", {
      'className':"imgslides"
     });
     txt = createElement(spa, "spane", {
     'className':"txtslides",
      'innerHTML':mooz.imgsrc[M%mooz.imgsrc.length].title
     });
     this.M = 10000+M;
    },
    mainloop:function(){
     with(this){
      for(j=0; j<mooz.nbI; j++) {
       O[j].M += (ym-my)/8000;
       M = O[j].M%nbI;
       ti = Math.pow(mult,M);
       with(O[j].o.style){
        left   = Math.round((W-(ti*rwh))/(W+ti)*(W*.5))+"px";
        top    = Math.round((B-ti)/(B+ti)*(B*.5))+"px";
        zIndex = Math.round(10000-ti*.1);
        width  = Math.round(ti*rwh)+"px";
     height = Math.round(ti)+"px";
    #
       }
    #
      }
    #
     }
    #
     setTimeout("mooz.mainloop();", 16);
    #
    },
    #
     
    #
    oigres:function(){
    #
     with(this){
    #
      W = parseInt(document.getElementById("zoom" ).style.width);
    #
      B = parseInt(document.getElementById("zoom" ).style.height);
    #
      imgsrc = document.getElementById("images" ).getElementsByTagName("img" );
    #
      rwh = imgsrc[0].width/imgsrc[0].height;
    #
      for(var j=0;j<nbI;j++) O[j] = new Xoom(j);
    #
      mainloop();
    #
     }
    #
    }
    #
    }
    #
     
    #
    document.onmousemove = function(e){
    #
    if(window.event) e=window.event;
    #
    ym = (e.y || e.clientY);
    #
    if(ym/2>my)my=ym/2;
    #
    }
    #
     
    #
    window.onload = function(){
    #
    ym = my+50;
    #
    mooz.oigres();
    #
    preload();
    #
    }

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    oups, j'ai accroché le bouton j'avais pas fini mon message:

    #
    Quelqu'un peut-il m'aider svp... Je commence à perdre patience là :pt1cable:

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    c'est un classique
    menu_utram.js:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    window.onload = function(){object[0] = new Slide(0, "frames" );
    preload();
    }


    zoom.js:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    window.onload = function(){
     
    ym = my+50;
     
    mooz.oigres();
     
    preload();
     
    }

    donc c'est soit l'une soit l'autre fonction qui est chargée lors de l'événement onload().

    Néanmoins, ce qui me gène c'est la présence de la fonction preload() dans tes scripts. Où est-elle définie (je ne la voit nulle part dans tes exemples) ? Est-elle définie à la fois dans zoom.js et menu_utram (et là il y a conflit) où est-elle définie dans un autre script ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Tout y est tu sais... Je ne suis vraiment pas au point en javascript, je commence...

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    A lala... J'en ai vraiment marre et ça parrait...

    Bon, j'ai fait comme tu m'as dit, j'ai remplacé ceci:

    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    window.onload = function(){object[0] = new Slide(0, "frames");
    }

    par cela:

    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.onload = function(){object[0] = new Slide(0, "frames" );

    qui est en fait la même chose

    et ceci:

    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    window.onload = function(){
    	ym = my+50;
    	mooz.oigres();
    }

    par cela:
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    window.onload = function(){
     
    ym = my+50;
     
    mooz.oigres();
     }

    Ca ne fonctionne toujours pas. Il y a qu'un seul (par exemple le menu ou le zoom qui marche seul. Les deux ensemble ne marchent pas

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    ce que tu peux faire :

    remplace
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    window.onload = function(){object[0] = new Slide(0, "frames");
    }
    par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function initMenu()
    {
    object[0] = new Slide(0, "frames");
    }

    et remplace
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    window.onload = function(){
     
    ym = my+50;
     
    mooz.oigres();
     }
    par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function initZoom()
    {
    ym = my+50;
    mooz.oigres();
     }

    puis dans la balise body de ta page HTML, écris :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="initZoom(); initMenu()">

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Tu sais quoi? Tu es fantastique!!! En plus du m'a débloqué mentalement... Y'avait pleins de trucs que je comprenais pas et du coup ça y'est!!! Et la lumière fut...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2010] Sélectionner du texte entre deux signets dans une note de bas de page
    Par VBA2010 dans le forum VBA Word
    Réponses: 2
    Dernier message: 13/09/2012, 14h23
  2. [HTML]Inserer un *.swf dans une page html
    Par [Silk] dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/06/2005, 12h23
  3. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  4. Réponses: 6
    Dernier message: 14/12/2004, 02h47
  5. [Applet] Ouvrir une applet dans une page HTML
    Par debutant java dans le forum Applets
    Réponses: 4
    Dernier message: 04/06/2004, 17h11

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