Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
848 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Pas d'affichage d'images sur firefox mais oui sur les autres browsers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pas d'affichage d'images sur firefox mais oui sur les autres browsers

n°2038046
rfv
C'est comme ça ou comme ça ?
Posté le 24-11-2010 à 11:37:54  profilanswer
 

Bonjour,
 
Je sèche sur une incompatibilité avec Firefox, c'est un pauvre diaporama qui fonctionne bien avec les autres navigateurs.
 
Lui là => http://zepitou.free.fr/diapo/diapo [...] refox.html
 
Le tout est ICI
 
C'est surement tout con mais je commence à désespérer de trouver l'origine du problème.
 
 :jap:


Message édité par rfv le 26-11-2010 à 19:03:34
mood
Publicité
Posté le 24-11-2010 à 11:37:54  profilanswer
 

n°2038147
tpierron
Posté le 24-11-2010 à 16:51:07  profilanswer
 

Mouais, la réponse est dans la console d'erreur de Firefox (Ctrl+Shift+J). Tu utilises effectivement une spécifitié à IE.

n°2038156
rfv
C'est comme ça ou comme ça ?
Posté le 24-11-2010 à 17:08:23  profilanswer
 

Ha ! ça progresse, j'ai découvert qq chose là :D Merci
 
ça marche nickel sous chrome, safari, ie, il n'y aurait pas moyen de rendre facilement le script compatible avec Firefox ?
 
Je suis sensé en déduire quoi de ce "MonImage is not defined" ? J'ai dû oublier qq chose apparament, une déclaration qq part, mais quoi et où ?
 
js noob inside,  :sweat: pataper.


Message édité par rfv le 24-11-2010 à 21:17:08
n°2038482
gatsu35
Blablaté par Harko
Posté le 25-11-2010 à 16:25:25  profilanswer
 

tu fous un id sur "MonImage"  
<img src="" id="MonImage"/>
et ensuite tu fais
var img = document.getElementById('MonImage');
init(img)
 
voila c'est tout, c'est juste que IE est une sous merde trop permissive en JS. Et après du coup c'est la porte ouverte au mauvais code javascript


---------------
Blablaté par Harko
n°2038504
tpierron
Posté le 25-11-2010 à 17:01:32  profilanswer
 

Ne pas oublier le onclick aussi: remplacer "MonImage" par "this".

n°2038603
rfv
C'est comme ça ou comme ça ?
Posté le 26-11-2010 à 10:24:39  profilanswer
 

On y est presque, je le tord dans tous les sens en vain, j'ai fais des choses inavouables  :o , faut pas m'abandonner maintenant [:agkklr]
 
J'avais ça :
 
  <DIV><span class="textenormal">cliquer sur l'image (bah y'en a pas sous Firefox, c'est balot).</span><br>
  <img name="MonImage" border="0" src="" alt="image" style="" onClick="changeImage(MonImage)"></DIV>
 
<script language="javascript" type="text/javascript">
  init(MonImage)
</script>
 
J'ai maintenant ça :
 
  <DIV><span class="textenormal">cliquer sur l'image (bah y'en a pas sous Firefox, c'est balot).</span><br>
  <img id="MonImage" border="0" src="" alt="image" style="" onClick="changeImage(this)"></DIV>
 
<script language="javascript" type="text/javascript">
var img = document.getElementById('MonImage')
init(img)

</script>
 
L'image 1 s'affiche mais la mise à jour lors du clic ne fonctionne pas.
Une petite édition du code de votre part ( :sweat: aprés vérif du bon fonctionnement) serait salutaire je vous cache pas.  :jap:


Message édité par rfv le 26-11-2010 à 10:45:58
n°2038722
tpierron
Posté le 26-11-2010 à 17:35:58  profilanswer
 

Ah ouais, quand même, je me demande comment ce code fait pour fonctionner :
 

Code :
  1. function changeImage(obj) {
  2.  if (timerAg != 0) {
  3.    clearTimeout(timerAg)
  4.    timerAg = 0
  5.  }
  6.  if (timerRe == 0) { timerRe = setTimeout("retrecirImage("+obj.name+" )",0) }
  7. }
  8.  
  9. function agrandirImage(obj) {
  10.  if (obj.width < largDepart) {
  11.    obj.width+=40
  12.    obj.height = hautDepart
  13.    timerAg = setTimeout("agrandirImage("+obj.name+" )",0)
  14.  }
  15.  else {
  16.    clearTimeout(timerAg)
  17.    timerAg = 0
  18.  }
  19. }


 
Assez fort quand même: tu passes une chaine de caractère (obj.name) à un callback, et comme par magie, il se transforme en référence sur ton objet dans la fonction. Le genre d'effet de bord que tu t'arraches les cheveux quand tu ne t'y attends pas.... le pire, c'est que ça fonctionne dans Safari. [:shlavos]  
 
Oui, je sais t'en a rien à foutre, tu as récupéré ce script dans la première poubelle du web venu, codé comme il y a 15 ans, et tout ce que tu demandes c'est que ça fonctionne. Bon, parce que ça fait vraiment trop mal aux yeux :
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.                        "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>test</title>
  6. <link href="style.css" rel="stylesheet" type="text/css">
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8. </head>
  9. <body bgcolor="#FFFFFF">
  10. <table width="700"  border="0" align="center" cellpadding="0" cellspacing="0" id="Tableau_01">
  11.  <tr>
  12.    <td width="700" height="0" align="left" valign="top">
  13. <script type="text/javascript">
  14. var largDepart = 0
  15. var hautDepart = 0
  16. var numImg = 0
  17. var timerRe = 0
  18. var timerAg = 0
  19. var tabImage = new Array()
  20. tabImage[0] = "1.jpg"
  21. tabImage[1] = "2.jpg"
  22. tabImage[2] = "3.jpg"
  23. function init(obj) {
  24.  obj.src = tabImage[numImg]
  25.  largDepart = 640    
  26.  hautDepart = 480
  27. }
  28. function changeImage(obj) {
  29.  if (timerAg != 0) {
  30.    clearTimeout(timerAg)
  31.    timerAg = 0
  32.  }
  33.  if (timerRe == 0) { timerRe = setTimeout(retrecirImage,0) }
  34. }
  35. function agrandirImage() {
  36.  var obj = document.getElementById('MonImage')
  37.  if (obj.width < largDepart) {
  38.    obj.width+=40
  39.    obj.height = hautDepart
  40.    timerAg = setTimeout(agrandirImage,0)
  41.  }
  42.  else {
  43.    clearTimeout(timerAg)
  44.    timerAg = 0
  45.  }
  46. }
  47. function retrecirImage() {
  48.  var obj = document.getElementById('MonImage')
  49.  if (obj.width > 0) {  
  50.    obj.width-=40
  51.    obj.height = hautDepart
  52.    timerRe = setTimeout(retrecirImage,0)
  53.  }
  54.  else {
  55.    clearTimeout(timerRe)
  56.    timerRe = 0
  57.    obj.src = tabImage[(numImg+1)%tabImage.length]
  58.    numImg++
  59.    timerAg = setTimeout(agrandirImage,0)
  60.  }
  61. }
  62. </script>
  63.  <DIV><span class="textenormal">cliquer sur l'image (bah y'en a pas sous Firefox, c'est balot).</span><br>
  64.  <img id="MonImage" border="0" src="" alt="image" style="" onClick="changeImage(this)"></DIV>
  65. <script language="javascript" type="text/javascript">
  66.  init(document.getElementById("MonImage" ))
  67. </script>
  68.    
  69.    </td>
  70.  </tr>
  71. </table>
  72. </body>
  73. </html>


 
 
 

n°2038724
rfv
C'est comme ça ou comme ça ?
Posté le 26-11-2010 à 17:53:56  profilanswer
 

T'as bien cerné la situation, gros gros merci pour ce sortage de la mouisse, du coup ça m'a donné envie de creuser un peu les bases, ça sera pas du luxe :o
 :jap:  :jap:  :jap:  :jap:  :jap:  :jap:
 
Edit : c'est vrai que c'est tout de suite plus compréhensible quand c'est codé correctement.


Message édité par rfv le 26-11-2010 à 18:42:40

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Pas d'affichage d'images sur firefox mais oui sur les autres browsers

 

Sujets relatifs
Pas d'affichage des images sur internet explorer mais oui sur firefoxIncompatibilité de type Erreur 13 VBA
Fonction ok sous ie6 mais ne fonctionne pas sous firefoxErreur 13 Incompatibilité de type
Extension Referrer Opensearch sur Firefox[resolu] afficher/masquer fonctionne pas sous firefox
CSS / Compatibilité IE - Firefoxproblème avec xmlhttprequest et firefox
Galerie d'image AS3 / Problème sous Firefox / MacErreur 13 :incompatibilité type
Plus de sujets relatifs à : Pas d'affichage d'images sur firefox mais oui sur les autres browsers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR