2012-07-03 10 views

Respuesta

116
  • window.opener se refiere a la ventana que se llama window.open(...) para abrir la ventana desde la que se llama
  • window.parent se refiere a los padres de una ventana en un <frame> o
  • window.top se refiere a la parte superior-mayoría de la ventana de una ventana anidada en una o más capas de sub-ventanas

Esos serán null (o tal vez undefined) cuando no son relevantes para la situación de la ventana de referencia. ("Ventana de referencia" hace referencia a la ventana en cuyo contexto se ejecuta el código de JavaScript.)

+0

Gracias @pointy por la respuesta. Tengo una página principal que abre un niño usando 'window.open()' al enviar la página. Ahora esta ventana secundaria abre otra ventana secundaria con el mismo cierre de 'window.open()'. Ahora cuando envío mi segundo hijo (el primer hijo ya no existe), me gustaría acceder a los elementos de página de mi página principal. ¿Es posible desde el segundo hijo cuando el primero ya no está presente? – Sriram

+3

@Sriram: ese es el tipo de información que necesita para formular su pregunta, para que las personas sepan qué problema * realmente * está tratando de resolver. – josh3736

+4

@Sriram tendrás que tomar 'window.opener.opener' antes de que la página intermedia desaparezca. – Pointy

19

Creo que debe agregar algo de contexto a su pregunta. Sin embargo, la información básica acerca de estas cosas se puede encontrar aquí:

window.opener https://developer.mozilla.org/en-US/docs/Web/API/Window.opener

He usado window.opener sobre todo cuando se abre una nueva ventana que actuó como un diálogo que requiere entrada del usuario, y tenía que pasar información de vuelta a la ventana principal. Sin embargo, esto está restringido por la política de origen, por lo que debe asegurarse de que tanto el contenido del diálogo como la ventana de apertura se carguen desde el mismo origen.

window.parent https://developer.mozilla.org/en-US/docs/Web/API/Window.parent

He usado esta todo cuando se trabaja con IFrames que necesitan comunicarse con el objeto ventana que los contiene.

window.top https://developer.mozilla.org/en-US/docs/Web/API/Window.top

Esto es útil para asegurar que está interactuando con la ventana del navegador de nivel superior. Puede usarlo para evitar que otro sitio ingrese en su sitio web, entre otras cosas.

Si agrega más detalles a su pregunta, puedo proporcionarle otros ejemplos más relevantes.

ACTUALIZACIÓN: Hay varias maneras en que puede manejar su situación.
Usted tendrá la siguiente estructura:

  • ventana principal
    • Diálogo 1
      • Diálogo 2, inaugurado por el Diálogo 1

Cuando diálogo 1 ejecuta el código abrir Dialog 2, después de crear Dialog 2, tener dialo g 1 establece una propiedad en Dialog 2 que hace referencia al abridor Dialog1.

Así que si "ChildWindow" es que la variable para el objeto 2 ventana de diálogo, y "ventana" es la variable para el objeto de la ventana de diálogo 1. Después de la apertura de diálogo 2, pero antes de cerrar de diálogo 1 realizar una asignación similar a esto:

childwindow.appMainWindow = window.opener 

Después de hacer la asignación anterior, cerca de diálogo 1. Luego, desde el código que se ejecuta en el interior dialog2, usted debería ser capaz de utilizar window.appMainWindow para hacer referencia a la ventana principal, objeto de ventana.

Espero que esto ayude.

+0

Gracias @Mark por la respuesta. Tengo una página principal que abre un niño usando 'window.open()' al enviar la página. Ahora esta ventana secundaria abre otra ventana secundaria con el mismo cierre de 'window.open()'. Ahora cuando envío mi segundo hijo (el primer hijo ya no existe), me gustaría acceder a los elementos de página de mi página principal. ¿Es posible desde el segundo hijo cuando el primero ya no está presente? – Sriram

+5

[w3schools debe evitarse.] (Http://w3fools.com/) – josh3736

+0

respuesta actualizada. @ josh3736 - No veo cómo ese comentario es útil. No estoy aconsejando a nadie que obtenga una certificación w3schools. Todos aquí saben cómo buscar en google y obtener la definición básica de window.opener, window.top y window.parent. Use los enlaces de arriba o busque nuevas referencias, pero apenas tiene sentido duplicar la información que simplemente define estas propiedades aquí. –

3

superior, los padres, el abridor (así como la ventana, el yo y iframe) son todos los objetos de ventana.

  1. window.opener -> devuelve la ventana que se abre o inicia la ventana emergente actual.
  2. window.top -> devuelve la ventana superior, si está utilizando marcos, esta es la ventana de marcos, si no utiliza marcos, esta es la misma que la ventana o por cuenta propia.
  3. window.parent -> devuelve el marco padre del marco o iframe actual. El marco principal puede ser la ventana del conjunto de marcos u otro marco si tiene marcos anidados. Si no usa marcos, el padre es el mismo que la ventana actual o uno mismo
1

cuando se trata de ventanas emergentes window.opener juega un papel importante, porque tenemos que lidiar con los campos de la página principal así como la página secundaria , cuando tenemos que utilizar los valores en la página de los padres podemos utilizar window.opener o queremos que algunos datos en la ventana secundaria o ventana emergente en el momento de la carga, de nuevo podemos establecer los valores usando window.opener

Cuestiones relacionadas