Tengo el siguiente script de una publicación de Dennis de esta URL
Es exactamente lo que estoy buscando, pero necesito poder abrir cada url con 20 o 30 segundos de diferencia.
<script>
function openWindow(){
var x = document.getElementById('a').value.split('\n');
for (var i = 0; i < x.length; i++)
if (x[i].indexOf('.') > 0)
if (x[i].indexOf('://') < 0)
window.open('http://'+x[i]);
else
window.open(x[i]);
}
</script>
¿Alguien puede ayudar?
Respuestas:
Para evitar congelar todo el navegador (con una función de retraso), puede usar
setTimeOut
para ejecutar una función a 20000 milisegundos de diferencia.Todos
setTimeout
se ejecutan uno tras otro. Hay una función programada en cada milisegundo de tiempo. Cada ciclo, el parámetro atTime aumenta en 20000 (20 segundos). Después de eso, su página permanece inactiva y las funciones setTimeout se ejecutan en los momentos asignados.Tenga en cuenta el
setTimeout("window.open('" + site + "')", atTime);
. No podemos hacerlosetTimeout(window.open(site), atTime);
porque la función entre setTimeout se evalúa en el momento de la ejecución y la variablesite
tendrá el último valor del bucle. Entonces hacemos un cambiosetTimeout("window.open('xxx')", atTime);
donde xxx cambia en el ciclo. De esta manera, la variable se establece en el comando de ejecución. (Espero que sea lo suficientemente claro)Aquí está el guión:
fuente
sleep
función en mi segundo código en mi respuesta.