Tengo un iframe dentro de una página, y este iframe contiene un botón de envío que hará alguna función.

Lo que quiero es: después de que finalice el envío del iframe, llame a la página principal para actualizar.

Sé cómo actualizarlo:

parent.location.reload();

Pero no sé cómo hacerlo después de enviar finalizar.

7
Amr Elgarhy 7 dic. 2009 a las 18:25

4 respuestas

La mejor respuesta

Resolví este problema agregando esta línea de código en el código detrás de todos mis métodos:

    ScriptManager.RegisterStartupScript(this, typeof(string), "script", 
"<script type=text/javascript>
parent.location.href = parent.location.href;</script>", false);

Y la razón por la que no escribí parent.location.reload() y escribí parent.location.href = parent.location.href es para no enviar los datos dos veces al servidor, ya que quiero una nueva carga de página nueva.

4
Amr Elgarhy 7 dic. 2009 a las 17:58

Use un controlador de eventos onload en su iframe. Cuando se active después del envío, ejecute su top.location.reload ...

// In parent
window.onload = function() {
  document.getElementById("MY_IFRAME").onload = function() {
    top.location.reload();
  }
}
4
Josh Stodola 7 dic. 2009 a las 15:34

Enviar un formulario es la acción FINAL en el documento en el Iframe. Una vez que envía un formulario, esa página ha sido "enviada" y ya no está activa. Si primero actualiza al padre, pierde el Iframe. En el momento en que envía el iframe, ya no puede hablar con el padre.

Puedes hacer una de algunas cosas aquí:

  • Diríjase al PADRE cuando envíe el formulario, luego el padre tendrá lo que quiera en un NUEVO iframe en esa página.
  • Haga que la página resultante en el iframe vuelva a cargar el padre utilizando JavaScript en la página de resultados.
2
Diodeus - James MacFarlane 7 dic. 2009 a las 15:32

Si solo desea actualizar algunas partes de la página principal y no necesita actualizar toda la página, y la mayoría de las veces este es el caso, ya que este enfoque no recarga el iframe en sí, puede llamar a una función de JavaScript de la página del niño.

window.parent.myFunctionInParent('my argument');

El recurso que lo guía está aquí: Actualizar la página principal parcialmente desde iframe

Gracias.

2
sangam 19 jul. 2011 a las 12:27