Conviene guardar el código siguiente en un archivo aparte, por ejemplo "loadImages.js" para poder incluirlo fácilmente en aquellos proyectos en los que necesitemos cargar varias imágenes de forma sencilla.
// loadImages.js // arguments: // string urls with location of images to load // callback function // returns: // array of Image objects function loadImages() { //images and callback var n = arguments.length - 1; // number of images to load var callback = arguments[n] var images = new Array(); var count = 0; for (i = 0; i < n; i++) { images[i] = new Image(); images[i].onload = function(){ count++; if (count == n){ callback (); }; }; images[i].src = loadImages.arguments[i]; }; return images; }
Uso
La función loadImages devuelve un array que contiene las imágenes cargadas. Acepta un número variable de argumentos. Los argumentos serán cadenas de texto especificando la ubicación de las imagenes a cargar, excepto el último argumento, que será la función de callback, que debe especificarse sin comillas y sin los paréntesis de la llamada, como en el siguiente ejemplo:<!DOCTYPE html> <html> <head> <script type="text/javascript" src="./loadImages.js"></script> <script type='text/javascript'> function load_done() { text = "Images loaded:<br>"; for(var i=0; i< images.length; i++) { text += images[i].src + "<br>"; } document.write(text); } var images = loadImages('./images/im1.jpg', './images/im2.jpg', './images/im3.jpg', './images/im4.jpg', './images/im5.jpg', './images/im6.jpg', './images/im7.jpg', './images/im8.jpg', './images/im9.jpg', load_done); </script> </head> <body> </body> </html>En este ejemplo hemos especificado las ubicaciones relativas de las imágenes a cargar, pero también se podría haber usado caminos absolutos e incluso urls como
'http:\\www.lapaginaquesea.com\imagencualquiera.jpg