Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur javascript sous IE rend le site inutilisable

    9 mars 2011 à 21:50:49

    Bonjour,

    j'ai utilisé pas mal de Jquery dans un projet de site que je suis occupé à développer, travaillant sous Firefox, Safari et Chrome tout semblait fonctionnait pour le mieux, jusqu'à ce que je teste ce site sur Internet Explorer (toutes versions testées), sur IE6 pas trop grave car je comptais pas rendre le site visible sur ce navigateur mais IE7 et IE8 :o là c'est la catastrophe!!
    en fait lorsque je clique sur une des boites du menu au centre de la page, le contenu du div ne s'affiche pas et je reçois le message d'erreur suivant :

    "Message : Argument non valide.
    Ligne : 144
    Caractère : 219
    Code : 0"
    URI : http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"

    c'est comme si ce script en ligne contenait des erreurs?? Je n'y comprends absolument rien!!

    Je vous donne l'url du site : http://bit.ly/hL9TBo

    Merci d'avance pour votre aide!



    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2011 à 22:40:43

      Non, la lib jQuery ne contient normalement pas d'erreurs (fort heureusement). Mais l'erreur se produit dans le fichier, dû à une mauvaise utilisation d'une des fonctions, très certainement.

      Donc pour débugguer, c'est un peu la misère...

      Mais moi j'ai pas cette erreur là, à vrai dire... J'ai :

      Ligne: 650
      Caractère: 29
      Code: 0
      Message d'erreur: Identificateur, chaîne ou nombre attendu
      URL: http://www.dirtyballet.com/LIVE/fr/index.html


      qui signale que tu as une virgule en trop à la fin de la ligne 648 du code source.
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2011 à 23:18:48

        J'ai enlevé une virgule de trop à cette ligne mais l'erreur subsiste il me dit que l'erreur est maintenant à la ligne 144 caractère 219 du script jquery.min.js, je me doute comme tu le dis que l'erreur vient probablement de la mauvaise utilisation d'une fonction mais je comprends pas pk ça fonctionne nickel sur les autres navigateurs! Merci d'avance pour votre aide!
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2011 à 23:30:06

          checke avec firebug peut-être...
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2011 à 23:30:46

            Dans la console Firebug, lorsque je clique sur une des box, il me dit ça dans la rubrique Avertissements (pas Erreurs!):
            You've used the same selector more than once
            Selector: "#the_lights"
            You should only use the same selector more than once when you know the returned collection will be different. For example, if you've added more elements to the page that may comply with the selector
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2011 à 23:36:19

              Normalement si c'est un avertissement ça ne devrait pas générer d'erreur fatale, bizarre!
              • Partager sur Facebook
              • Partager sur Twitter
                10 mars 2011 à 7:59:11

                Comme je l'ai dit, débugguer sous IE c'est une vraie plaie... Et y'a pas vraiment de solution miracle.

                Une solution, c'est de placer des alert() à intervalles réguliers dans ton code JS.
                Ensuite, tu vois lesquels s'exécutent et lesquelles ne s'exécutent pas.

                Ca t'aidera à déterminer où se trouve les erreurs.
                Une fois que tu as déterminer à peu près où c'est, tu augmentes le nombre d'alert dans cette région, et tu finiras par trouver quelle ligne précise plante.
                Alors on pourra peut-être en dire plus.
                • Partager sur Facebook
                • Partager sur Twitter
                  10 mars 2011 à 11:09:29

                  Bonjour,

                  j'ai essayé avec les alert, l'alert n'apparait plus lorsque je rentre dans cette partie du code au niveau de la condition
                  if(current == $currentBox.index()){
                                              /* put it back (decrease width,height, and set the top and left like it was before).
                                              the previous positions are saved in the divinfo obj*/
                                           $("#the_lights").css({'display' : 'block'});
                                           $("#the_lights").fadeTo(0.9,0);
                  						 $("#the_lights").stop().animate({
                  									
                                                      'opacity'    : '0'
                                              },800,'easeOutBack').fadeOut();
                  									$currentBox.stop().animate({
                                                      'top'         : divinfo.initial[$currentBox.index()].top,
                                                      'left'        : divinfo.initial[$currentBox.index()].left,
                                                      'width'     : '146px',
                  									
                                                      'height'    : '81px'
                                              },800,'easeOutBack').find('.boxcontent').fadeOut();
                  
                  /*													$('.reveal-modal-bg2').css('z-index','0');
                  													$('.reveal-modal-bg2').css('background','rgba(0,0,0,0)');
                  */
                                              $('#littleBoxes > div').not($currentBox).each(function(){
                                                  var $ele         = $(this);
                                                  var elemTop     = divinfo.initial[$ele.index()].top;
                                                  var elemLeft     = divinfo.initial[$ele.index()].left;
                  /*                                var elemZindex     = divinfo.initial[$ele.index()].z-index;
                  */                                $ele.stop().show().animate({
                                                      'top'         : elemTop,
                                                      'left'        : elemLeft,
                  /*									'z-index'     : elemZindex,
                  */                                    'opacity'    : 1
                                                  },800);
                                              });
                  							$('#frame-bottom').css('z-index','1999');
                  							$('#frame-top').css('z-index','1999');
                                              current = -1;
                                          }
                                          /* if we are clicking on a small box : */
                                          else{
                                              /* randomly animate all the other boxes.
                                              Math.floor(Math.random()*601) - 150 gives a random number between -150 and 450.
                                              This range is considering the initial lefts/tops of the elements. It's not the exact right
                                              range, since we would have to calculate the range based on each one of the boxes. Anyway, it
                                              fits our needs...
                                              */
                                              $('#littleBoxes > div').not($currentBox).each(function(){
                                                  var $ele = $(this);
                                                  $ele.stop().animate({
                                                      'top' : (Math.floor(Math.random()*601) - 150) +'px',
                                                      'left': (Math.floor(Math.random()*601) - 150) +'px',
                  /*									'z-index' : 999,
                  */                                    'opacity':0
                                                  },800,function(){
                                                      $(this).hide();
                                                  });
                                              });
                  
                                              /* expand the clicked one. Also, fadeIn the content (boxcontent)
                                              if you want it to fill the space of the littleBoxes container,
                                              then these are the right values */
                                              var newwidth     = $this.next('div').width();
                  
                                              /*var newheight     = 679;*/
                  							var newheight = $this.next('div').height();
                  							var newZindex = 999;
                  							var newleft = ((438 - newwidth) / 2);
                  							/*alert(newleft);*/
                                              $currentBox.stop().animate({
                                                  'top'     : '-100px',
                                                  'left'    : newleft,
                  								'z-index' : newZindex,
                                                  'width' : newwidth +'px',
                                                  'height': newheight+'px'
                  								
                                              },800,'easeOutBack',function(){
                                                  current = $currentBox.index();
                                                  $(this).find('.boxcontent').fadeIn();
                  								                        
                  
                                              });
                  							  
                  
                  
                                          }
                  


                  Merci d'avance!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 mars 2011 à 18:26:23

                    Bonjour à tous,

                    Je me tourne vers vous car je rencontre le même sous au niveau d'Internet Explorer avec mes scripts jQuery.
                    Je sais que l'erreur ne vient pas de là, mais je n'arrive pourtant pas à l'isoler.

                    Je vous mets le liens vers ma page.

                    http://www.saachiweb.fr/adventlife/

                    J'utilise un script trouvé sur internet pour faire un menu déroulant.
                    Tout fonctionne à merveille sur FF Chrome et Safari, mais IE reste retissant...
                    Je précise que mon code est valide Xhtml Strict...

                    Si vous voyez d'où peut provenir le problème!!

                    Merci par avance
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Erreur javascript sous IE rend le site inutilisable

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown