Salut tout le monde,
voilà, je dois implémenter un preload d'images.
Le site est en Php. La liste des images à preloader est un tableau définit dans un script Php appelé via un include, placé après le body de la page index.php (en gros, en fonction de chaque rubrique du site, un include est effectué pour charger le script php qui va générer le contenu).
Donc pour ma page X, j'ai un tableau de variables contenant les noms de fichier des images, placé dans le body.
Il y a 10 images affichées de manière standards dans des liens. 10 autres images, utilisées pour le rollover (onMouseOver) doivent être préloadés via une fonction javascript.
Je prévois d'utiliser cette fonction
Mes intérrogations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <SCRIPT language="JavaScript"> if (document.images) { preload_image_object = new Image(); // set image url image_url = new Array(); image_url[0] = "http://mydomain.com/image0.gif"; image_url[1] = "http://mydomain.com/image1.gif"; image_url[2] = "http://mydomain.com/image2.gif"; image_url[3] = "http://mydomain.com/image3.gif"; var i = 0; for(i=0; i<=3; i++) preload_image_object.src = image_url[i]; } </SCRIPT>
- Ma fonction javascript doit être générique. Je ne peux pas redéfinir le tableau qui comprend les noms des fichiers dans ma fonction JS. Je dois trouver un moyen d'envoyer mon tableau de variable généré dans le body à ma fonction JS (qui sera dans le header logiquement ?).
- Comme mentionné à la fin du point précédent, je m'intérroge dans la manière d'implémenter ma fonction javascript afin qu'elle soit prise en compte correctement au chargement de la page. Doit-elle obligatoirement être placée dans le HEAD ? Est-ce que je pourrais la définir dans le fichier appelé par l'include, dans la balise body ? Mais ensuite, si dans le <body onload="appel_de_ma_fonction_js();"/>, qui est avant la définition de cette dernière, cela ne va pas fonctionner ?
Je ne sais pas si j'ai exposé mon soucis de manière clair. N'hésitez pas à me demander des éclaircissements.
Merci d'avance à ceux qui ont pris le temps de me lire.
Partager