2010-01-30 42 views

Respuesta

72
window.opener.$("#serverMsg") 
+0

Funciona solo si JQuery está activo en el abridor, creo. –

+1

sí, por supuesto ... – roman

+0

perfecto, ¡gracias! –

16

Si usted está en una po-y desea tener acceso a la ventana de apertura , utilice window.opener. La forma más fácil sería si se pudiera cargar jQuery en la ventana padre, así:

window.opener.$("#serverMsg").html // esto utiliza jQuery en la ventana padre

o puede utilizar el viejo y simple document.getElementById para obtener el elemento, y luego extender usando el jquery en la ventana de su hijo. La siguiente debe trabajo (no he probado, sin embargo):

element = window.opener.document.getElementById("serverMsg"); 
element = $(element); 

Si se encuentra en un iframe o conjunto de marcos y desea tener acceso al marco padre, utilice window.parent en lugar de window.opener.

Según la misma política de origen, todo esto funciona sin esfuerzo solo si tanto el hijo como la ventana principal están en el mismo dominio.

7

o puede utilizar otro enfoque:

$("#serverMsg", window.opener.document) 
+0

Prefiero este enfoque porque no confía en que la ventana de apertura tenga jQuery, aunque probablemente tendrá jQuery de todos modos. –

0

Aquí es una respuesta (ventana padre a diferencia de abrelatas) más literal de la pregunta original que se puede utilizar dentro de un iframe, asumiendo el dominio nombre en el iframe coincide con el de la ventana principal:

window.parent.$("#serverMsg") 
Cuestiones relacionadas