Foros del Web » Programando para Internet » Javascript »

refrescar un iframe

Estas en el tema de refrescar un iframe en el foro de Javascript en Foros del Web. Hola, tengo un iframe, que se llama user, y quiero que cada cierto segundos se refresque su contenido, tengo este codigo: <script type="text/javascript"> function reFresh(){ ...
  #1 (permalink)  
Antiguo 20/03/2011, 05:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
refrescar un iframe

Hola, tengo un iframe, que se llama user, y quiero que cada cierto segundos se refresque su contenido, tengo este codigo:

<script type="text/javascript">

function reFresh(){
window.parent.user.location.reload();
}
window.setInterval("reFresh()",1000);
</script>

que se ejecuta en el body, el problema esta en que no refresca el id, sino que refresca toda la pagina, que puedo hacer para que esto no pase, el codigo del iframe es el siguiente:

<iframe id="user" src="comprobar.php" width=290 height=250>

</iframe>
  #2 (permalink)  
Antiguo 20/03/2011, 06:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: refrescar un iframe

buenas...

estas haciendo referencia al frame incorrectamente. hay navegadores -como iexplorer- que crean variable globales usando los IDs pero estos hacen referencia a un elemento. en tu caso, si el navegador asi lo permite, user hace referencia al elemento <iframe> y no al contexto window que generan los marcos. tienes que usar la referencia de ese contexto window para poder invocar las funciones referente a ese marco. para ello, debes usar la coleccion frames desde el documento contenedor del <iframe> e indicas el id o name entre corchetes para identificar el frame. luego de eso puede usar los objetos/metodos de dicho frame.
Código:
frames['id o name']... ;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 20/03/2011, 06:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: refrescar un iframe

No lo he entendido, podrias explicarmelo con mi codigo
  #4 (permalink)  
Antiguo 20/03/2011, 06:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: refrescar un iframe

Código:
// en esta linea, la referencia esta mal hecha (resaltado en rojo) ;
window.parent.user.location.reload();

// lo correcto es ;
frames['user']... ;
por supuesto, esto asumiendo que el codigo se interpreta en el documento contenedor del <iframe>.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 20/03/2011, 06:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: refrescar un iframe

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>

<script type="text/javascript">

function reFresh(){
frames['user'].location.reload();
}
window.setInterval("reFresh()",1000);
</script>

</head>
<body onload="reFresh()">

<form>
<input type="submit" value="enviar" name="envio" />
</form>
<iframe id="user" src="comprobar.php" width=290 height=250>
</iframe>

</body>
</html>

lo tengo asi, comprobar.php mira una base de datos y saca informacion de ahi, pero sigue sin funcionar.
  #6 (permalink)  
Antiguo 20/03/2011, 06:35
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: refrescar un iframe

cambia el atributo id por name... algunos navegadores no consideran el atributo id en la coleccion frames. por cierto, siempre revisa la consola de error del navegador, este te dara mas informacion si ocurre algun fallo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 20/03/2011, 06:37
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: refrescar un iframe

cambiando id por name pasa lo mismo, se refresca toda la pagina y no solo el iframe,
hay alguna manera de cambiar el iframe por un div
  #8 (permalink)  
Antiguo 20/03/2011, 06:46
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: refrescar un iframe

a mi me funciona correctamente en los navegadores firefox, iexplorer8, y chrome. aca puedes ver un ejemplo, http://phpscripting.awardspace.us/dev/. se puede cambiar el iframe por un <div> pero no se hace tan facil como dos pasos. necesitas usar ajax. si estas muy verde en javascript, quizas te convenga alguna libreria de ajax para salir del apuro.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 20/03/2011, 06:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: refrescar un iframe

a mi tambien me funciona como en el ejemplo del link, lo que pasa es que estas refrescando continuamente la pagina
  #10 (permalink)  
Antiguo 20/03/2011, 06:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: refrescar un iframe

esta refrescando el iframe, tal como hace tu codigo... pero no refresca el documento contenedor del iframe. fijate que el contador no se reinicia. el mensaje que dice hola es agregado desde un script para que puedas apreciar que se recarga el <iframe>.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: iframe, refrescar
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 13:24.