sábado, 2 de octubre de 2010

JavaScript: Enlaces aleatorios

Muchas veces nos piden incluir un enlace de cualquier página/blog en nuestra propia página (O blog). Claramente, no vamos a poner todos los enlaces pues aparte de ser algo antiestético, puede provocar que perdamos tráfico en nuestra web. La solución que propongo, es incluir todos los enlaces que queramos, y que la suerte decida cual mostrar.

Para ello, he hecho un pequeño Script en JS (Que podemos insertar con facilidad en nuestro blog o página) con el cual mostraremos páginas aleatorias.

Veamos el código:

(Aquí)

Lo primero que hacemos es asignar un número aleatorio (entre 0 y 9 en mi caso) que posteriormente pasará a ser parte de la condición de un Switch. En cada case, tendremos una página web. En el ejemplo solo tengo 2, mi blog y el blog de un amigo, pero podemos poner tantos como queramos. Para generar números aleatorios con un umbral mas grande, podemos cambiar la 1º línea de JS:
var aleato=Math.floor(Math.random()*10)
En vez de ser  *10, podemos poner el número de cases mas 1. Por ejemplo, para obtener números aleatorios del 0 al  20, pondríamos *21.


La sintaxis de los cases puede resultar algo 'fea', pero básicamente imprime un enlace que lleva al blog.

   case 0:
document.write("
<a href=\"http://causasdelsilencio.blogspot.com/\">Causas del Silencio</A>");
   break;

Cuando el número aleatorio sea 0, se mostrará el enlace a este blog.

El número se actualizará cada vez que actualicemos la página, o que cambiemos de dirección, por lo que constantemente estaremos generando enlaces aleatorios.


Random

5 comentarios:

  1. var paginas_web = {
    {'http://pagina1.com', 'Pagina prueba'},
    {'http://otra.pagina.com', 'Otra Pagina'},
    {'http://milyunapagina.org', 'Mil y una pagina'}
    }; // agregar más si se quiere


    for(i = 0; i < 10; ++i){
    var aleato = Math.floor(Math.random()*3);

    document.write(''+ paginas_web[aleatorio][1] + '');
    }

    con eso logras que agregando un par {página, nombre} al arreglo tienes todo solucionado y no tienes un switch interminable.

    ResponderEliminar
  2. OK, no se como se pueda editar la entrada anterior... el document.write, debe tener
    <a href=' + paginas_web[aleatorio][0] + '>' + paginas_web[aleatorio][1] + '</a>'

    ResponderEliminar
  3. Solo aparece un comentario tuyo Anibal, lo que me dificulta el entendimiento de tu comentario actual xD

    Pero, creo ver que propones guardar las páginas en un arreglo e imprimirlas con el document.write...

    No es mala idea, quedaría mas organizado, voy a probar.

    ResponderEliminar
  4. Si, había escrito un post y se ve que me sobreescribió el anterior...
    La idea es exactamente esa, un arreglo con los nombres de las páginas y luego un for para recorrer y buscar los links.

    Igual, éste tipo de cosas, mejor es hacerlo del lado del servidor, o, si se va a usar javascript, hacerlo de forma dinámica (mostrar 4 o 5 aleatorio, y un botón de más que despliegue el resto, sino carece de sentido el uso de javascript).

    ResponderEliminar
  5. Ya sé que pasó, te marcó el comentario como Spam blogspot, ya te lo he desmarcado yo.

    Cuando acabe el proyecto de fin de curso de clase me pondré a hacer arreglos en el blog, entre ellos a mejorar el Script tal y como me dices. ¡Un saludo y gracias!

    ResponderEliminar