Fichier existant javascript

Fichier existant javascript - HTML/CSS - Programmation

Marsh Posté le 31-07-2006 à 16:35:32    

Bonjour,
 
dans un fichier html, je charge une image en javascript grace à

Code :
  1. <img id="identifiant">

.
Je voudrais pouvoir tester si cette image existe avant de l'afficher.  
J'ai vu qu'il existait en php File_Exits mais le probleme est que l'on se sert du chemin "en dur" et je ne sais pas comment récupérer le chemin de part mon identifiant.
 
Si quelqu'un peut m'aider.
 
Merci

Reply

Marsh Posté le 31-07-2006 à 16:35:32   

Reply

Marsh Posté le 31-07-2006 à 16:55:11    

Travailleuuse06 a écrit :

Bonjour,
 

Code :
  1. <img id="identifiant">


 
Merci


 
Je ne pense pas que ce code soit conforme. :/
 
Que tu modifies le src via par exemple le DOM ensuite, pk pas. Mais il doit y avoir une src de départ. Pourquoi pas une image vide.
 
 

Reply

Marsh Posté le 31-07-2006 à 16:59:13    

Il faudrait aussi du reste tester pour voir si via JS et le DOM quand tu changes le src pour une adresse d'une image qui n'existe pas, cela génère une erreur. Si oui, tu peux passer par try/catch

Reply

Marsh Posté le 02-08-2006 à 10:01:28    

J'ai le meme souci, j'ai essayé le try catch autour de la ligne JS qui modifie la proprieté ".src":

Code :
  1. try{
  2.      myImage.src="une_url";
  3. } catch (e)
  4. { alert("CATCH!" );
  5.    myImage.src="url_img_erreur";
  6. }


 
mais je n'ai aucun alert...
J'ai essayé aussi de mettre un onError dans le tag img, qui appele une fonction JS qui contient :   myImage.src="url_img_erreur";
 
mais pas de resultat non plus...
Des idées??

Reply

Marsh Posté le 02-08-2006 à 10:11:16    

La seule possibilité (mais c'est lourd), c'est de passer par un appel à xmlhttprequest avec une page de traitement en PHP qui va par exemple renvoyer le fait que l'image existe ou pas. [:spamafote]
 
En tous cas, cette solution marche à 100%.

Reply

Marsh Posté le 02-08-2006 à 10:35:28    

Pourtant Hermes, au chargement d'une page html l'evenement "onError" d'un tag image est bien capable d'appeler un fonction JS. Pourquoi ne peut-on pas utiliser cet evenement lorsd'une modification du img.src par JS?
J'imagine que le gestionnaire d'évenements n'est pas prévenu du changement de src?? Il doit exister une solution.

Message cité 1 fois
Message édité par jm2 le 02-08-2006 à 10:35:51
Reply

Marsh Posté le 02-08-2006 à 11:14:30    

jm2 a écrit :

Pourtant Hermes, au chargement d'une page html l'evenement "onError" d'un tag image est bien capable d'appeler un fonction JS. Pourquoi ne peut-on pas utiliser cet evenement lorsd'une modification du img.src par JS?
J'imagine que le gestionnaire d'évenements n'est pas prévenu du changement de src?? Il doit exister une solution.


 
mouaif, les onerror, on sait ce que ça vaut en JS... Faut voir en plus les différences entre les nav... :/

Reply

Marsh Posté le 02-08-2006 à 11:29:25    

En fait on peut s'enSANS sortir en xmlHttpRequest, via l'objet Image et sa propriété "complete" ( supporté par IE & Gecko)
Un truc dans le genre:

Code :
  1. var myNewImage = new Image();
  2.   myNewImage.src="une_url";
  3.   var myErrorImage = new Image();
  4.   myErrorImage.src="url_img_erreur";
  5.   if ( myNewImage.complete){
  6.     myImage.src = myNewImage.src
  7.   } else if ( myErrorImage.complete){
  8.     myImage.src=myErrorImage.src;
  9.   } else {
  10.     alert('catastrophe');
  11.   }


 
edit: orthographe, merci Hermes

Message cité 1 fois
Message édité par anapajari le 02-08-2006 à 11:32:15
Reply

Marsh Posté le 02-08-2006 à 11:30:56    

anapajari a écrit :

En fait on peut s'en sortir en xmlHttpRequest, via l'objet Image et sa propriété "complete" ( supporté par IE & Gecko)
Un truc dans le genre:

Code :
  1. var myNewImage = new Image();
  2.   myNewImage.src="une_url";
  3.   var myErrorImage = new Image();
  4.   myErrorImage.src="url_img_erreur";
  5.   if ( myNewImage.complete){
  6.     myImage.src = myNewImage.src
  7.   } else if ( myErrorImage.complete){
  8.     myImage.src=myErrorImage.src;
  9.   } else {
  10.     alert('catastrophe');
  11.   }



 
ça va marcher partout ça ?
 
Au fait tu voulais dire 'SANS' xmlhttprequest et non 'EN'. ;)

Reply

Marsh Posté le 02-08-2006 à 11:32:15    

Je ne connaissais d'ailleurs pas la méthode complete :/
 
Intéressant si compatible avec tous les navigateurs de marché. T'es sûr que c'est supporté partout ? Parce qu'on aurait enfin un moyen de REELLEMENT précharger les images à ce compte là.

Reply

Marsh Posté le 02-08-2006 à 11:32:15   

Reply

Marsh Posté le 02-08-2006 à 11:35:10    

Hermes le Messager a écrit :

Au fait tu voulais dire 'SANS' xmlhttprequest et non 'EN'. ;)


 :jap: sorry
 

Hermes le Messager a écrit :

Je ne connaissais d'ailleurs pas la méthode complete :/
Intéressant si compatible avec tous les navigateurs de marché. T'es sûr que c'est supporté partout ? Parce qu'on aurait enfin un moyen de REELLEMENT précharger les images à ce compte là.


Bin c'est du javascript 1.1, supporté par Netscape3 et Ie4, je vois pas trop quoi d'autre ajouter [:spamafote]
 

Reply

Marsh Posté le 02-08-2006 à 14:26:02    

anapajari a écrit :

:jap: sorry
 
 
Bin c'est du javascript 1.1, supporté par Netscape3 et Ie4, je vois pas trop quoi d'autre ajouter [:spamafote]


Là je reconnais quelqu'un qui maîtrise le JS  :jap:  
Vous me pardonnerez mais en ce moment je suis prisonnier, je suis en vacances avec ma nana, donc je peux pas vous aider.
 
J-2 avant fin du calvaire :D

Reply

Sujets relatifs:

Leave a Replay

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