Hola
gebo,
caricatos :
Este mensaje me trajo recuerdos de cuando el
IE 5 (o
Win 98, ya no estoy seguro) desconocía algunos métodos para
array y terminamos inventando
prototype's y demás para hacerlos compatibles. Al final encontré el tema
Manipular array
Fue un "Volver a Vivir", me encontré contigo,
caricatos, con
Gul Dukat,
kepawe, y hasta después se sumó
Neuron_376.
Seguramente algo te va a servir,
gebo. Aunque hoy ya todos los métodos funcionan en los últimos navegadores, creo que el "shuffle" no lo agregaron.
De todas formas, el ejemplo que pusiste tiene un par de errores de concepto. Y redundancias. También "idas y vueltas" innecesarias.
Supongo que si te dejo un ejemplo que funcione lo vas a saber desarmar para adaptarlo a tu página. Lo que uso es un
while, que me parece más eficiente en estos casos que un bucle
for.
Por supuesto que
splice() destruye el
array original, porque le extrae (al azar, por
Math.random()) un elemento en cada vuelta; pero como supongo que una vez cargado el documento ya no vas a usar de nuevo esa lista, el mecanismo sirve.
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>DESORDENA IMÃGENES.</title>
<script type="text/javascript">
var lista = "";
var enlace = new Array();
enlace[0] = (new Image()).src = "http://img4.imageshack.us/img4/9595/fishes.th.jpg";
enlace[1] = (new Image()).src = "http://img338.imageshack.us/img338/7682/relojvillalongafurlongm.th.jpg";
enlace[2] = (new Image()).src = "http://img358.imageshack.us/img358/5474/screenshot036el.th.jpg";
enlace[3] = (new Image()).src = "http://img329.imageshack.us/img329/1169/img0420jn3.th.jpg";
enlace[4] = (new Image()).src = "http://img201.imageshack.us/img201/9135/ichatimage3259540742dy5.th.jpg";
enlace[5] = (new Image()).src = "http://img9.imageshack.us/img9/3651/marioquinterosc.th.jpg";
while ((enlace.length) > 0) {
var indice = Math.floor(Math.random() * enlace.length);
var otraImag = enlace.splice(indice, 1);
//PARA ENLACE IMAGESHACK
var orig = (""+otraImag+"").split(".th").join("");
lista += "<a href="+ orig +" title='"+ orig +"'>";
lista += "<img src="+ otraImag +" alt='"+ otraImag +"'>";
//PARA ENLACE IMAGESHACK
lista += "</a> ";
}
document.write(lista);
</script>
<style type="text/css">
body {text-align: center; }
</style>
</head>
<body>
</body>
</html>
Le agregué además los enlaces por si alguien quiere ver las imágenes originales y no las
thumbnails; están marcados con comentarios para que los saques si no te sirven.