Problème javascript images

Fermé
raphtaar - 19 janv. 2010 à 11:36
 raphtaar - 19 janv. 2010 à 12:18
Salut à tous!!
J'espere etre dans le bon topic ;-)
J'ai un script que j'ai placé ici en dessous ( voir plus bas), il fonctionne mais j'ai tout de même une petite question. Est ce qu'il est possible de changer le script pour que les images s'affichent automatiquement sans devoir changer à chaque fois la valeur. Je m'explique ce qu'il faut faire c'est chaque fois rajouter une ligne de code en pointant vers son nouveau fichier. Donc ma question existe-t-il un moyen pour ne pas chaque fois devoir taper ce code??( le code dont je parle c'est ceci :

afficheVignette("../img/photos/img_petite/img001.jpg","../img/photos/img_grande/img001.jpg");

ensuite je dois retaper ce code pour avoir ma deuxième image en remplacant bien les valeurs

afficheVignette("../img/photos/img_petite/img002.jpg","../img/photos/img_grande/img002.jpg");

Voici le code en question:
<head>
<SCRIPT LANGUAGE="JavaScript">
function afficheVignette(cheminVignette,cheminMaxi)
{
document.write('<A HREF="javascript:afficheMaxi(\''+cheminMaxi+'\')"><IMG SRC="'+cheminVignette+'" HSPACE=15 VSPACE=5 BORDER=0 ALT="" frameColor="0xffc040"></A>');
}
function afficheMaxi(chemin)
{
i1 = new Image;
i1.src = chemin;
html = '<HTML><HEAD><TITLE>Image</TITLE></HEAD><BODY LEFTMARGIN=0 MARGINWIDTH=0 TOPMARGIN=0 MARGINHEIGHT=0><CENTER><IMG SRC="'+chemin+'" BORDER=0 NAME=imageTest onLoad="window.resizeTo(document.imageTest.width+14,document.imageTest.height+82)"></CENTER></BODY></HTML>';
popupImage = window.open('','_blank','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=1');
popupImage.document.open();
popupImage.document.write(html);
popupImage.document.close()
};


</SCRIPT>

</head>

<body>

<SCRIPT LANGUAGE="JavaScript">
afficheVignette("../img/photos/img_petite/img001.jpg","../img/photos/img_grande/img001.jpg");

afficheVignette("../img/photos/img_petite/img002.jpg","../img/photos/img_grande/img002.jpg");

afficheVignette("../img/photos/img_petite/img003.jpg","../img/photos/img_grande/img003.jpg");

afficheVignette("../img/photos/img_petite/img004.jpg","../img/photos/img_grande/img004.jpg");

afficheVignette("../img/photos/img_petite/img005.jpg","../img/photos/img_grande/img005.jpg");

afficheVignette("../img/photos/img_petite/img006.jpg","../img/photos/img_grande/img006.jpg");

afficheVignette("../img/photos/img_petite/img007.jpg","../img/photos/img_grande/img007.jpg");

afficheVignette("../img/photos/img_petite/img008.jpg","../img/photos/img_grande/img008.jpg");

afficheVignette("../img/photos/img_petite/img009.jpg","../img/photos/img_grande/img009.jpg");

afficheVignette("../img/photos/img_petite/img010.jpg","../img/photos/img_grande/img010.jpg");



</body>

Voila, j'espere que c'est compréhensible.
A bientot et merci d'avance pour vos réponses!!
A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 janv. 2010 à 12:05
Bonjour,

Si tes images s'appellent toujours imgXXX.jpg, et qu'il n'y a pas de trous entre deux nombres, tu peux mettre une boucle for :
<body>

<SCRIPT LANGUAGE="JavaScript">
for (var i = 1; i < 10; i++)    // De 1 à 9
{
    afficheVignette("../img/photos/img_petite/img00" + i + ".jpg","../img/photos/img_grande/img00" + i + ".jpg");
}
for (var i = 10; i < 11; i++) // De 10 à 99
{
    afficheVignette("../img/photos/img_petite/img0" + i + ".jpg","../img/photos/img_grande/img0" + i + ".jpg");
}
</script>
</body> 
Bon, la c'est la version naïve, où on ne s'embête pas trop, mais qui est limitée en nombre d'images. Tu pourrais t'amuser à créer une fonction qui rajoute les 0 qu'il faut à gauche du nombre i, c'est pas dur à faire, et ça te permettrait de n'avoir qu'une boucle, au prix d'une très légère surcharge de calcul.

Xavier
0
Salut Xavier,
Tout d'abord un grand merci de ta réponse, j'ai effectivement bien toujours la même dénomination qui est imgxxx.jpg ; J'ai voulu mettre ce système en place pour que lorsque je rajoute mes images avec cette dénomination sur mon serveur je ne doive pas chaque fois rajouté ma ligne de code dans ma page html. Cependant je travaille avec firefox et je vois que ca fonctionne vraiment nickel par contre dans internet explorer tant que je n'ai pas placé d'images avec la dénomination imgxxx.jpg il me met un cadre blanc avec une croix rouge à l'intérieur. Donc voila pourquoi j'ai voulu mettre un système en place ou il place mes photos l'une à la suite de l'autre en "étant propre" j'ai trouvé aussi un autre javascript qui est le suivant mais malheureusement je dois toujours rentrer une valeur le voici :
Est ce que tu as une idée de ce que je pourrais faire??

<html>
<head>

<script language=Javascript>

function charger(arg,larg){
fen=window.open('','fen','');
fen.document.write("<center><br>IMAGE"+arg+"<br><img src='image"+arg+".jpg' border=0 width="+larg+"><br></center><hr>");
}

function photo(nb){
var i=1;
var largeur=screen.availWidth-100;
for(i=1;i<nb;i++){
document.write("<img src='../img/photos/img_petite/img"+i+".jpg' width=170 onClick='charger(");
document.write(i);
document.write(",");
document.write(largeur);
document.write(")'><br><br>");
}
}

</script>

</head>
<body>
<script language="javascript">
photo(6);
</script>

</body>
</html>

Merci
Raph.
0