Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Ocultar Iframe dentro de DIV al pulsar boton del iframe

Estas en el tema de Ocultar Iframe dentro de DIV al pulsar boton del iframe en el foro de Javascript en Foros del Web. Hola a tod@s, a ver si consigo explicarme bien y se puede hacer esto que se me ha ocurrido. Tengo una página con varias opciones. ...
  #1 (permalink)  
Antiguo 25/04/2018, 04:23
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Ocultar Iframe dentro de DIV al pulsar boton del iframe

Hola a tod@s, a ver si consigo explicarme bien y se puede hacer esto que se me ha ocurrido. Tengo una página con varias opciones. Al pulsar una de estas opciones, muestra un div que estaba oculto y que contiene un iframe con otra página.
Lo que quiero hacer es que cuando pulsen el botón de enviar de la página que está dentro del iframe, el div de la página padre vuelva a quedar oculto.

¿Es posible hacer esto? Os dejo el código del iframe y de la ocultación, por si sirve como pista:

El div con el iframe
Código HTML:
Ver original
  1. <div id="contenido"><iframe src="anyadir_agenda_intranet.asp" width="100%" height="670" scrolling="no" frameborder="0"></iframe></div>

La función que oculta/muestra el div:
Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. function muestra_oculta(id){
  3. if (document.getElementById){ //se obtiene el id
  4. var el = document.getElementById(id); //se define la variable "el" igual a nuestro div
  5. el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
  6. }
  7. }
  8. window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente
  9.  "contenido_a_mostrar" es el nombre que le dimos al DIV
  10.  Aplicamos un retardo de 10 milisegundos para que WP cargue el iframe antes de ocultarlo y ajuste bien el tamaño*/
  11. setTimeout ("muestra_oculta('contenido');", 10);
  12. }
  13. </script>
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 25/04/2018, 05:01
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Ocultar Iframe dentro de DIV al pulsar boton del iframe

Quizás con
Código Javascript:
Ver original
  1. parent.document.getElementById()
  #3 (permalink)  
Antiguo 25/04/2018, 07:34
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Respuesta: Ocultar Iframe dentro de DIV al pulsar boton del iframe

Pues si, con eso lo he conseguido. He añadido el parent. a los dos document.getElementById de la función y la he puesto en la página del iframe y he añadido la llamada a la función en otra función que ya tenía esa página (una que comprueba el formulario antes de enviarlo).
Me ha surgido un problema y es que al ocultar el div, como la página contenida era bastante larga, la página padre se quedaba en la parte de abajo y no se veía el resto de la página, quedando un espacio en blanco bastante grande, pero lo he solucionado añadiendo un enlace en la parte superior y añadiendo a la función un document.getElementById("myAnchor").focus(); para que vuelva arriba.
Muchas gracias!!
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 25/04/2018, 08:03
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Respuesta: Ocultar Iframe dentro de DIV al pulsar boton del iframe

Por si a alguien le viene bien, copio el código que he usado. En la página del iframe habría que añadir la misma función que en la página padre, pero añadiendo el "parent." donde corresponda. Además, tiene una linea más que lleva el foco a un enlace que hay en la página padre:

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. function muestra_oculta(id){
  3. if (parent.document.getElementById){ //se obtiene el id
  4. parent.document.getElementById("myAnchor").focus();
  5. var el = parent.document.getElementById(id); //se define la variable "el" igual a nuestro div
  6. el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
  7.  }
  8. }
  9. </script>

Se añade la llamada a la función donde se quiera ejecutar, en mi caso, va dentro de la función que comprueba que los valores del formulario de la página contenida en el iframe sean correctos.

Código Javascript:
Ver original
  1. muestra_oculta('contenido');
  2.             return true;}

Y por último se coloca un enlace en la página padre al que volverá el foco al ocultar la capa con el iframe:

Código HTML:
Ver original
  1. <a id="myAnchor" href="#"> </a>

He probado usando un ancla en lugar de un enlace y no funcionaba...
__________________
Vayamos por Partes :: Jack el Destripador

Etiquetas: boton, iframe, pulsar
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 22:17.