Probleme null or not a object

Signaler
Messages postés
6
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
5 décembre 2007
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour, j'ai utilisé dernièrement un script de Maxgenoma (

BARRE DE SCROLL INDÉPENDANTE DU NAVIGATEUR ), il fonctionne à merveille sur Firefox, mais sur IExplorer 6, il me fait une erreur :   'bar.ref' is null or not a object

Je suis pas excellent en javascript, y a t-il quelqu'un qui a une solution???

Voici la partie du code javascript qui fait défaux, j'ai mis en rouge ce qui cause l'erreur:






function scrSetup(defaultFile) { with (this)
{
 if (!isDyn) return;


 // Get layer objects for all the divs passed to the function somehow...



 for (var i = 0; i < divs.length; i++)
  divs[i].lyr = getLyr(divs[i].id, eval(divs[i].par));
 


 // These get accessed so often we might as well get some short references.


 div = divs[0].lyr;
 bar = divs[1].lyr;
 thm = divs[2].lyr;


 // Buffer frame for IE/NS6 -- same as scroller name, plus 'Buf'.
 // NS6 has troubles with the frames array and iframes, so use a workaround.


 if (!isNS4) bufRef = eval('window.' + myName + 'Buf');


 // Set up event capturing for NS4.


 if (isNS4)
 {
  bar.ref.captureEvents(Event.CLICK);
  thm.ref.captureEvents(Event.MOUSEDOWN);
 }


 // Pass these events to this scroller.



 bar.ref.onclick = new Function('evt', 'return ' + myName + '.barClick(evt)');
 thm.ref.onmousedown = new Function('evt', 'return ' + myName + '.thumbDown(evt)');   









 // For IE4+/NS6, create a new function that stops selections being made when dragging.


 var noSel = new Function('if (activeScr) return false');
 if (isIE) document.onselectstart = noSel;
 else if (isDOM) document.onselect = noSel;


 // It's now ready to go, call resize function to set the positions and variables...


 loaded = true;
 layout();


 // Now is a good time to fire the 'onsetup' event, it's ready to load.
..
 if (onsetup) onsetup();


 // Get the name of the file to be loaded from a URL query string...


 var fileName = ''


 // Get the string after the question mark.


 var URL = location.search.substring(1);
 if (URL)
 {


  // Split it into an array of scroller/filename pairs.


  URL = URL.split('&');


  // Search through that array looking for this scroller name.


  for (var i = 0; i < URL.length; i++)
   if (URL[i].split('=')[0] == myName) fileName = unescape(URL[i].split('=')[1]);
 }


 // If a filename has been detected, load it.


 if (fileName) load(fileName)


 // Else load default file (if we're passed one) or scroll existing content without loading.


 else if (defaultFile) load(defaultFile);
 else fileLoaded();
}}








Merci d'avance!!!

Chuck


















[auteur/MAXGENOMA/60566.aspx




]

4 réponses

Messages postés
6
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
5 décembre 2007

Sérieusement, y a pas quelqu'un qui peut m'aider.....je ne comprends vraiment pas pourquoi ca marche sur FireFox et pas sur IExplorer....habituellement c'est pas l'inverse???

SVP AIDEZ MOI!!!!
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B

onjour...

SORRY pas moyen de reproduire l'erreur après chargement de la source...

Question :
a quoi ressemble ton <!DOCTYPE...
à quoi ressemble ton <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=...
si tu en as...



;0)
Messages postés
6
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
5 décembre 2007

J'ai réussi à trouver le problème, j'ai simplement effacé une ligne dans la balise body:






Pour laisser seulement :

Je ne sais pas trop pourquoi la fonction que Dreamweaver créé pour les RollOver entrait en conflit avec ça mais bon....au moins présentement ca marche!  Merci PetoleTeam d'avoir pris du temps pour ca!!!

Chuck
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Il faut effectivement faire attention lorsque l'on mets plusieurs onLoad, dans ton cas un sur window, source js, et un sur body.
Il y a fort à parier que IE n'avez pas encore fini de créer, physiquement sentant, avant d'affecter.
En effet on ne maîtrise pas la façon qu'ont les navigateurs de gérer leurs prioritées.
Il est parfois nécessaire de rappeler une fonction avec un setimeout si on sent l'embrouille...
L'essentiel est préservé puisque cela marche.
Bonne Prog.



;0)