Javascript OK sous IE mais pas sous mozilla

Résolu
didite49 -  
 didite49 -
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 4260 Statut Contributeur 857
 
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
didite49
 
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