Quería una función que pudiera cambiar mi fondo cada vez que recargaba la página, pero no funciona.
<script type="text/javascript"> var source = document.getElementById('video-source'); var videos = [ "videos/vid1.mp4", "videos/vid2.mp4", "videos/vid3.mp4" ]; var randomVideo = videos[Math.floor(Math.random() * 3)]; source.setAttribute('src', randomVideo); </script>En realidad, parece que el código ejecuta y actualiza su fuente de video en cada actualización de página, pero debido a que la matriz es demasiado pequeña (aunque su método aleatorio le da una oportunidad a cada elemento), siempre puede elegir uno igual
Puede intentar usar arr[Math.floor(Math.random() * 10000) % arr.length] para seleccionar elementos aleatorios de matrices pequeñas. Si no funciona, agregue el debugger; al comienzo de su js y depúrelo paso a paso, así es como puede asegurarse de que su código se ejecute nuevamente cada vez que la página se vuelva a cargar.
Si desea asegurarse de que el video seleccionado sea diferente al anterior, puede usar el siguiente código para elegir la URL del video:
function selectRandomElement(arr) { //assume arr contains at least two elements var res; while((res = arr[Math.floor(Math.random() * 10000) % arr.length]) == localStorage['lastVideo']); localStorage['lastVideo'] = res; return res; }