Javascript OK sous IE mais pas sous mozilla

Résolu/Fermé
didite49 - 29 avril 2008 à 13:55
 didite49 - 29 avril 2008 à 15:06
Bonjour,

J'ai un soucis avec un javascript. Il fonctionne parfaitement sous IE mais sous mozilla, rien à faire.

Je souhaite tout simplement afficher un zoom de l'image à la place que j'ai défini lorsque je passe sur la petite image.

Voici le javascript en question :
<script language="JavaScript">
<!--
function na_change_img_src(name1, rpath1, preload1)
{
  var img1 = eval((navigator.appName == 'Netscape') ? name1 : 'document.all.'+name1);
  if (name1 == '')
    return;
  if (img1) {
    img1.altsrc = img1.src;
    img1.src = rpath1;
  }
}

function na_restore_img_src(name1, nsdoc1)
{
  var img1 = eval((navigator.appName == 'Netscape') ? name1 : 'document.all.'+name1);
  if (name1 == '')
    return;
  if (img1 && img1.altsrc) {
    img1.src = img1.altsrc;
    img1.altsrc = null;
  }
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// -->
</script>


Voici maintenant le code de l'image zoomée :
<img name="photo" src="combles/comble1.jpg" width="460" height="345" id="photo">


Voici maintenant le code de l'image miniature à zoomer :
<a href="#" onMouseOut="na_restore_img_src('photo', 'comble2.jpg');" onMouseOver="na_change_img_src('photo', 'combles/comble2.jpg', true);"><img src="combles/comble2-ptt.jpg" width="80" height="80" hspace="5" vspace="3" border="0" /></a>


J'ai regardé dans la console d'erreur de mozilla et il m'indique une erreur à la ligne suivante :
var img1 = eval((navigator.appName == 'Netscape') ? name1 : 'document.all.'+name1);


Votre aide me serait extremement précieuse.

merci d'avance.
A voir également:

1 réponse

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
29 avril 2008 à 14:51
Bonjour,

A la place de ceci :
var img1 = eval((navigator.appName == 'Netscape') ? name1 : 'document.all.'+name1);


Remplace par ceci :
var img1 = eval((navigator.appName == 'Netscape') ? document.getElementById(name1) : 'document.all.'+name1);


Bien que je pense que tu pourrai te passer de l'instruction eval pour faire comme suit :
var img1 = (navigator.appName == 'Netscape') ? document.getElementById(name1) : 'document.all.'+name1;


Normalement ça devrait fonctionner sous IE et FF, du moins ne plus t'afficher la même erreur.
0
Merci pour ta réponse qui a résolu mon problème.


Juste pour infos supplémentaire :
J'ai testé avec les deux, mais seule la ligne avec le eval fonctionne sous les deux.
Sans le eval ne fonctionne pas sous IE et ne me met pas d'erreur.

Encore merci.
0