Foros del Web » Programando para Internet » Javascript »

Redirecciones con Javascript

Estas en el tema de Redirecciones con Javascript en el foro de Javascript en Foros del Web. Hola muy buenas a todos. Estoy tratando de empezar con Javascript y me surgió hacer un tipo de auto refresh o una redirección cada cierto ...
  #1 (permalink)  
Antiguo 25/11/2014, 06:25
 
Fecha de Ingreso: noviembre-2014
Mensajes: 7
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta Redirecciones con Javascript

Hola muy buenas a todos.
Estoy tratando de empezar con Javascript y me surgió hacer un tipo de auto refresh o una redirección cada cierto tiempo, pero lo particular que tiene esto es que es entre dos sitios.
Me explico, tengo un iframe y allí cargo un sitio, a los 5 segundos cargue otro en el mismo iframe, luego de 5 segundos más se devuelva al primer sitio y así, infinito.

Tengo este script pero no se repite la acción.
También me di cuenta, que a los 5 segundos pasa al otro sitio, sin importar si cargo o no :c

traté de guardarlo en jsFiddle pero no pude, este es el código.

Código:
var iframeElem = document.getElementById('iframe1Id');
iframeElem.src = "http://www.narce.cl";
setTimeout(function() {
var iframeWindow = window.iframe1Name;
iframeWindow.location.href = "http://www.croquisweb.cl";},5000);

<iframe name='iframe1Name' id='iframe1Id'></iframe>
  #2 (permalink)  
Antiguo 25/11/2014, 07:44
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Redirecciones con Javascript

La acción no se repite porque estás usando setTimeout() el cual se ejecuta sólo una vez cuando se cumple el tiempo seteado. Si querés que la acción se repita, tenés que usar en su lugar setInterval() que se va a ejecutar infinitamente hasta que invoques un clearInterval().

En tu código no hay ninguna verificación para la carga del sitio, podrías ingresarlo dentro de un window.onload por ejemplo.

Saludos.
  #3 (permalink)  
Antiguo 25/11/2014, 09:03
 
Fecha de Ingreso: noviembre-2014
Mensajes: 7
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Redirecciones con Javascript

Cita:
Iniciado por GeekGirl Ver Mensaje
La acción no se repite porque estás usando [URL="http://www.w3schools.com/jsref/met_win_settimeout.asp"]setTimeout()[/URL] el cual se ejecuta sólo una vez cuando se cumple el tiempo seteado. Si querés que la acción se repita, tenés que usar en su lugar [URL="http://www.w3schools.com/jsref/met_win_setinterval.asp"]setInterval()[/URL] que se va a ejecutar infinitamente hasta que invoques un [URL="http://www.w3schools.com/jsref/met_win_clearinterval.asp"]clearInterval()[/URL].

En tu código no hay ninguna verificación para la carga del sitio, podrías ingresarlo dentro de un window.onload por ejemplo.

Saludos.
Hola, gracias por responder.
Entiendo lo que hace setInterval pero lo que está haciendo ahora es cada 5 segundos me devuelve al mismo sitio. La idea es que vaya en uno en uno, osea me muestre cada 5 segundos cada sitio.

Código:
var iframeElem = document.getElementById('iframe1Id');
iframeElem.src = "http://www.narce.cl";
setInterval(function() {
var iframeWindow = window.iframe1Name;
iframeWindow.location.href = "http://www.croquisweb.cl";},5000);
Algún dato?:(
  #4 (permalink)  
Antiguo 25/11/2014, 09:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Redirecciones con Javascript

Hola:

Retocar las referencias es para liarse... lo que se cita de la respuesta, no aparece en la respuesta...

...De todos modos, si quieres alternar valores, deben ser variables y deben actualizarse en cada actualización... por ejemplo tener un array de enlaces, y en cada iteración modificar el índice.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 25/11/2014, 09:20
 
Fecha de Ingreso: noviembre-2014
Mensajes: 7
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Redirecciones con Javascript

lo siento:( pero como dije al principio no entiendo mucho de Javascript y estoy recién aprendiendo a programar en este lenguaje, así que no entendí nada de lo que me dijiste :/
  #6 (permalink)  
Antiguo 25/11/2014, 10:01
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Redirecciones con Javascript

En tu código la url está puesta a mano. Si querés que no sea fija tenés que levantar el src dinámicamente, por ejemplo de un array como bien dijo caricator y luego indicarle el mismo en el setInterval. Por ejemplo:

Código Javascript:
Ver original
  1. // Creas un array con todos tus enlaces
  2. var arraySrc = ['http://www.enlace1.com', 'http://www.enlace2.com', 'http://www.enlace3.com'];
  3.  
  4. // Defines la posición inicial
  5. var arrayPos = 0;
  6.  
  7. setInterval(function() {
  8.  
  9.     // Verificas que el índice esté dentro de las posiciones de tu array
  10.     if (arrayPos < arraySrc.length) {
  11.         iframeWindow.location.href = arraySrc[arrayPos];
  12.  
  13.         // Incrementas uno para pasar al otro enlace cuando se repita el intervalo
  14.         arrayPos++;
  15.     } else {
  16.         // Si se alcanzó la cantidad máxima, se vuelve a 0 para iterar desde el primer enlace, y si quisieras cortar el bucle simplemente podés hacer un clearInterval
  17.         arrayPos = 0;
  18.     }
  19. },5000);
  #7 (permalink)  
Antiguo 25/11/2014, 11:23
 
Fecha de Ingreso: noviembre-2014
Mensajes: 7
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Redirecciones con Javascript

aaah ya, entiendo como funciona el código.
está bien así?

Código:
var iframeElem = document.getElementById('iframe1Id');
var arraySrc = ['http://www.narce.cl', 'http://www.croquisweb.cl'];
var arrayPos = 0;
    setInterval(function() {
        if (arrayPos < arraySrc.length) {
            iframeElem.src = arraySrc[arrayPos];
            var iframeWindow = window.iframe1Name;
            arrayPos++;
        } else {
            arrayPos = 0;
        }
    },10000);
  #8 (permalink)  
Antiguo 25/11/2014, 11:31
 
Fecha de Ingreso: noviembre-2014
Mensajes: 7
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Redirecciones con Javascript

También noté que la función empieza a correr a los 5 segundos, como está definida. pero antes de empezar también espera 5 segundos haciendo que cuando empieze denuevo espere esos 5 segundos haciendo que un sitio esté 10 segundos y otro 5s.
  #9 (permalink)  
Antiguo 25/11/2014, 12:03
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Redirecciones con Javascript

Bueno te di la base y prácticamente todo resuelto. Investiga un poco por tu cuenta!

Saludos :)
  #10 (permalink)  
Antiguo 25/11/2014, 12:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirecciones con Javascript

Podrías tener esa función por fuera y ejecutarla una vez al momento de cargar la página y luego cada N segundos dentro del temporizador.

Código Javascript:
Ver original
  1. //Defino la función
  2. function ejemplo(){
  3.     //Instrucciones
  4. }
  5.  
  6. //La ejecuto una vez al cargar la página
  7. ejemplo();
  8.  
  9. //La ejecuto cada cierto tiempo con el temporizador
  10. setInterval(ejemplo, tiempo);

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: html, redireccion, refresh
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:49.