2010-09-27 29 views
5

que tiene esta línea sencillagetElemenById problema en Google Chrome

alert(window.parent.frames[0].document.getElementById('textToSearch').value); 

tengo 2 marcos, primero con un campo de texto con id 'textToSearch' Quiero obtener el valor del campo de texto en el segundo cuadro La línea de arriba está en el archivo html del segundo fotograma Obtengo este error solo en Google Chrome, en IE o FF funciona bien.

Uncaught TypeError: Cannot call method 'getElementById' of undefined

¿Alguna idea?

Gracias de antemano

+0

¿Ambos marcos están en el mismo dominio? – Matchu

+0

sí, ambos marcos están incluidos en una página de índice – tinti

+0

¿qué le proporciona 'alert (window.parent.frames.length)' y 'alert (window.parent.frames [0] .toString())'? – JBRWilkinson

Respuesta

4

Finalmente Calculo cuál era el problema. Intento el código de arriba en Google Chrome en un archivo local del sistema. Debido a la configuración de seguridad de Google Chrome, este uso es imposible. Si muevo todos los archivos en un servidor web esto funcionará como un encanto Gracias por su apoyo, este hilo se puede cerrar ahora

+1

Usted es responsable de cerrar el hilo marcando una respuesta (propia o de otra persona) como respondida. –

+0

ok, aceptaré esta respuesta mañana ... como sugerencia en la información sobre herramientas – tinti

3

Uso contentWindow.document en lugar de document:

var frame = window.parent.frames[0].contentWindow; 
alert(frame.document.getElementById('textToSearch').value); 

Usted también puede utilizar contentDocument para la mayoría de los navegadores, pero no Internet Explorer 7 o más.

+0

Gracias por responder ... pero no funcionó. recibo No se puede leer la propiedad 'documento' de indefinido. Si quiero ver qué hay en la variable 'frame' con alerta, tengo 'undefined' – tinti

+0

@tinti: eso es extraño. No hay propiedad * document * para un elemento iframe en Chrome, pero hay propiedades * contentWindow * y * contentDocument *. Si está buscando el marco, el código que te di ** debe ** funcionar. –

+0

No sé si es un problema, pero uso frame en lugar de iframe. – tinti