Pb Js chargment d'image ... mon script est pourri

Pb Js chargment d'image ... mon script est pourri - HTML/CSS - Programmation

Marsh Posté le 08-12-2002 à 15:13:05    

voila le script:

Code :
  1. function ChangeImg(NameI,NewSrc)//marche pas terrible pour l'instant, en dévellopement
  2. {
  3. if(document.images)
  4.  var ImgName;
  5.  ImgName = NameI;
  6.  {
  7.  if(Loading == false)
  8.   {
  9.   Loading = true;
  10.   Img[NbImage] = new Image();
  11.   Img[NbImage].src = NewSrc;
  12.   eval("TimeoutID = window.setTimeout(\"ChangeImg('"+ImgName+"','"+NewSrc+"')\",200);" );
  13.   }
  14.  else
  15.   {
  16.   if(Img[NbImage].complete==true)
  17.    {
  18.    //document.images[ImgName].src = Img[NbImage].src;
  19.    eval("document."+ImgName+".src = Img[NbImage].src;" );
  20.    NbImage = NbImage + 1;
  21.    Loading = false;
  22.    }
  23.   else
  24.    {
  25.    eval("TimeoutID = window.setTimeout(\"ChangeImg('"+ImgName+"','"+NewSrc+"')\",200);" );
  26.    }
  27.   }
  28.  }
  29. }


 
Il ne fonctionne pas très bien ... pourtant j'ai galéré pendant des heure pour qu'il marche sur la plupart des navigateurs mais rien n'y fait ! Il n'arrive pas à charger l'image la plupart du temps !  
 
(en fait il marche bien sur IE mais pas sur Opera ) ! Pkoi ?
 
help  :bounce:
 
Le script en action:
 
www.magnin-sante.ch/dhtml/


Message édité par The Kinetics le 10-12-2002 à 19:52:29
Reply

Marsh Posté le 08-12-2002 à 15:13:05   

Reply

Marsh Posté le 08-12-2002 à 16:06:37    

UP  :bounce:

Reply

Marsh Posté le 08-12-2002 à 16:06:53    

UP  :bounce:

Reply

Marsh Posté le 10-12-2002 à 19:53:27    

svp prenez la peine de lire le script !  :cry:

Reply

Marsh Posté le 16-12-2002 à 19:33:15    

et pis sur netscape il me sors:
 
JavaScript Error:
http://localhost/mon%20site%20web/javascript/layer.js, line
60:
 
document.fleche has no properties.  
 
 :hello:  
 
Y a plein de monde qui a lu mon ptit topic, mais moi il me faudrait quelqu'un qui m'explique pourquoi ca ne marche pas !
 
Si je n'y arrive pas je vais finir par utiliser les obscurs script de MM

Reply

Marsh Posté le 16-12-2002 à 20:02:45    

préchargement d'image sans cassage de cul :
 
<img src='img.jpg' style='position: absolute; left: -4000px'>

Reply

Marsh Posté le 16-12-2002 à 22:36:42    

Wow super quelqu'un qui ma répondu :)
 
Mais le trux c'est que c'est pas un script de préchargement, c'est pour changer la SOURCE d'une image existante !!!
 
La subtilité est la suivante, il fait une boucle jusqua que l'image soie chargé dans le tableau d'image, et une fois le chargement réalisé il change la source avec ce code:
 
eval("document."+ImgName+".src = Img[NbImage].src;" );
 
Mais ca il a pas l'air de supporter Opera et Netscape ...
 
Quelqu'un d'assez courageux pour lire mon code !
 
 :hello:

Reply

Marsh Posté le 16-12-2002 à 22:52:17    

euh... à part alourdir ta page, ta subtilité n'a aucun intérêt. Si tu veux favoriser un ordre d'apparition des image, soit utilise les CSS, soit indique-les simplement dans des variables javascript, Moz, IE et opéra les chargeront en priorité.
 
Et la fonction eval fonctionne bien sous opéra 7, par contre, l'ensemble de ton code, non.

Reply

Marsh Posté le 16-12-2002 à 23:04:43    

Oki ...
 
Il me faudrait donc une fonction en JS qui change la source d'une image ... Le CSS ca va pas être possible visiblement...
 
Le truc subtile avec mon script cest que je voulais qu'il charge d'abors l'image avant de faire le changement réel ... Mais bon c'est vrai que ca apporte peu de chose ...
 
Un liens à me proposer ? ... ou je mets juste
 
eval("document."+ImgName+".src) = NewSrc et ca marchera

Reply

Marsh Posté le 16-12-2002 à 23:14:10    

GRRR ... rien à faire j'ai essayé tout les codes possible et ca refuse de passer ...
 
 
 :??:  :(

Reply

Marsh Posté le 16-12-2002 à 23:14:10   

Reply

Marsh Posté le 17-12-2002 à 06:26:12    

The Kinetics a écrit :

eval("document."+ImgName+".src) = NewSrc et ca marchera

pourquoi eval ? si tu donnes un id à ton image
 
<img id='myImage' src='img1.jpg'>
 
tu _dois_ le récupérer avec la méthode getElementById de document  
 
document.getElementById('myImage';)
 
tu as donc un pointeur vers ton image, suffit de changer la source de celle-ci  
 
document.getElementById('myImage';).src = 'img2.jpg'
 
utiliser document.nomimage n'est dans mes souvenirs pas compatible avec netscape (ce n'est pas dans le standard).
 
pour le préchargement, je me cassais le cul au début, puis j'ai fait comme plus haut : l'image de rollover est chargée directement par le code html qui la met très loin à gauche, la rendant invisible.

Reply

Marsh Posté le 17-12-2002 à 21:53:09    

ca je veux bien ... mais bon ca marche pas sur Opera ni sure Netscape 4.75
 
... Moz et IE oki ca passe, ben finalement tans pis pour les deux auttres :kaola: !!! ...
 
Ca vient peut-être du faite que l'image est pas préchargée ... ? Qu'en pensé vous ?
 
Merci pour vos réponse :jap:


Message édité par The Kinetics le 17-12-2002 à 21:55:23
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed