Solo lectura

Google Chrome - Foro de ayuda

Esta página web es un archivo de los hilos antiguos de los foros de Google. Más información

Error con el objeto window (Javascript)

gusamasan
14/10/10 11:25
Para una aplicación web, necesito abrir una ventana ( window.open ); desde la ventana nueva, necesito hacer referencia al objeto DOCUMENT de la ventana padre (window.opener.document).

Con la sentencia "alert( window.opener )", obtengo el mensaje: "[objectDOMWindow]".

Con la sentencia "alert( window.opener.document )", obtengo el mensaje: "undefined".

Por lo tanto no se puede hacer referencia a objetos en la ventana padre.

¿Qué puedo hacer?.

Desde ya, muchas gracias.


Versión de Google Chrome: 6.0.472.63
Sistema Operativo: Windows XP
Mensaje de error: undefined
Extensiones instaladas :

Respuestas (7)

Dennis Tobar
15/10/10 6:55
Hola:

Sabes que es raro, ya que ejecuto lo mismo que tu y me sale la alerta correcta[1]. Ahora, en la consola de ejecución te aparece el "undefined". Para acceder a los elementos del opener, yo lo hago un poco más rústico y no pongo el window, aunque funciona por igual[2]. Creo que tendrías que darle una vuelta a ver si lo que haces es correcto.

Antes de partir, recuerdo que el undefined viene por el retorno de la función alert. Fíjate en la imagen[3] para que veas a lo que me refiero ;)

Saludos
gusamasan
15/10/10 10:12
Hola, Dennis.

Gracias por la respuesta.

Este es el mensaje que el Chrome muestra:

Unsafe JavaScript attempt to access frame with URL file:///C:/Documents%20and%20Settings/gusamasan/Escritorio/Prueba/Principal/Prueba.html from frame with URL file:///C:/Documents%20and%20Settings/gusamasan/Escritorio/Prueba/Principal/VentanaAdicional.html. Domains, protocols and ports must match.
VentanaAdicional.html:13Uncaught TypeError: Cannot call method 'getElementById' of undefined
inicializarVentanaAdicional.html:13
(anonymous function)VentanaAdicional.html:19
onloadVentanaAdicional.html:20


El código en VentanaAdicional.html es:

function inicializar(){
// -----------------------------------------------
        var capaContenedora;
// -----------------------------------------------

        alert( opener.document );

        capaContenedora = opener.document.getElementById( "capaContenedora" );

        document.getElementById( "capaRespaldo" ).innerHTML = capaContenedora.innerHTML;
}

Atentamente,
Dennis Tobar
15/10/10 10:35
Sabes, miro el error y creo saber por donde podría ir:

Según veo, estás haciendo pruebas en tu equipo local y te lanza errores por temas de seguridad (se requiere el Javascript interactúe con otra ventana del mismo servidor, puerto y protocolo. (pe: no puede interactuar con una venta que tengas en un servidor local con Google, ya que falla la validación)
Lo otro es que te sugiero que pongas var capaContenedora, ya que allí también puede haber un fallo. Lo pruebo en mi consola con el ejemplo y no falla. :S

Creo que no puedo ayudar más, pero al menos ya tienes el debug hecho (y una sugerencia de javascript =))

Saludos
gusamasan
15/10/10 10:40
¡¡Muchísimas gracias, Dennis!!.

El problema es por la seguridad; moví mis archivos de prueba a un servidor web; ¡¡ahora no tiene problemas!!.
edwinavarro
10/11/10 8:26
buenas como estan...?   buscando y buscando encontre este problema que creo que es tambien el mio no lo se en realidad no soy experto en esto pero mi problema es el siguiente espero me puedan ayudar desde hace unos dias no puedo ver videos en internet y tampoco entrar en algunas paginas de juegos con ningun explorador debido a que las paginas no se me cargan y quedan en blano o negro, ya desintale  e instale miles de veces el adobe flash player y el shokave tambien el java y nada las configuarciones de de seguridad son las predeterminadas no movi nada de eso entonce abri el chrome y en la consola me da casi lo mismo que GUSAMASAN  espero que me puedan ayudar ya fomartie la pc dos veces pero el error persiste :( muchas gracias de ante mano .......... ESTO ES LO QUE ARROJA

 Unsafe JavaScript attempt to access frame with URL http://www.gamezer.com/billiards/ from frame with URL http://www2.game-advertising-online.com/index.php?section=serve&id=173. Domains, protocols and ports must match.
18Unable to post message to http://googleads.g.doubleclick.net. Recipient has origin http://www.gamezer.com.
Unsafe JavaScript attempt to access frame with URL http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-6255295236928726&format=728x90_as&output=html&h=90&w=728&ad_type=text_image&color_bg=000000&color_border=000000&color_link=9EB2FB&color_text=CAFBB1&color_url=9EB2FB&flash=10.1.103&url=http%3A%2F%2Fwww.gamezer.com%2Fbilliards%2F&dt=1289405341413&shv=r20101104&jsv=r20101102&correlator=1289405341415&frm=0&adk=3551071990&ga_vid=1879680765.1289405053&ga_sid=1289405053&ga_hid=1944274490&ga_fc=1&u_tz=-270&u_his=4&u_java=1&u_h=768&u_w=1024&u_ah=728&u_aw=1024&u_cd=32&u_nplug=10&u_nmime=20&biw=1007&bih=59&ref=http%3A%2F%2Fwww.gamezer.com%2Fbilliards%2F&fu=0&ifi=1&dtd=2453&xpc=SSUoB0zeYC&p=http%3A//www.gamezer.com from frame with URL http://www.gamezer.com/billiards/. Domains, protocols and ports must match.
Unsafe JavaScript attempt to access frame with URL http://www2.game-advertising-online.com/index.php?section=serve&id=173 from frame with URL http://www.gamezer.com/billiards/. Domains, protocols and ports must match.
3Unsafe JavaScript attempt to access frame with URL http://www.gamezer.com/billiards/ from frame with URL http://www2.game-advertising-online.com/index.php?section=serve&id=173. Domains, protocols and ports must match.
Dennis Tobar
10/11/10 9:34
Hola,

Eso no depende del navegador, sino que depende del sitio. Aunque formatees tu computador n veces, seguirá presente el problema. Ante eso, sugiero que te contactes con el administrador del sitio, ya que esa característica de seguridad impide que se reproduzca código malicioso de otros orígenes.

Saludos
Tomas Ibañez
23/10/12 17:08
Un millón de gracias. Estoy construyendo una función que trabaja con el id del body de la página que contiene un iframe:frames.iframe1.document.body.id.
En modo local Sólo estaba fallando en Google Chrome, en IE y Mozilla funciona perfectamente.
Al probarlo en el servidor funciona en los tres navegadores sin problemas. Gracias de nuevo.