Probleme null or not a object

cs_ChucklaPuck Messages postés 6 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 5 décembre 2007 - 19 sept. 2006 à 15:42
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 19 sept. 2006 à 22:08
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

cs_ChucklaPuck Messages postés 6 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 5 décembre 2007
19 sept. 2006 à 18:00
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!!!!
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
19 sept. 2006 à 20:01
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)
0
cs_ChucklaPuck Messages postés 6 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 5 décembre 2007
19 sept. 2006 à 20:24
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
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
19 sept. 2006 à 22:08
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)
0
Rejoignez-nous