2009-01-25 19 views
11

Estoy tratando de obtener acceso a un formulario y sus elementos. El formulario está dentro de un iframe y el código de javascript que está accediendo al formulario está dentro del documento principal.accediendo a un formulario que está en un iframe

No estoy seguro de qué más debo incluir en la pregunta, por lo tanto, avíseme si necesito agregar algo más.

(forma y página principal están en el mismo dominio)

Gracias

Respuesta

14
var ifr = document.getElementById(yourIframeId); 
var ifrDoc = ifr.contentDocument || ifr.contentWindow.document; 
var theForm = ifrDoc.getElementById(yourFormId); 

o podría tener algo de código en el marco que establece una variable en parent a la forma, pero yo wouldn' Confío en ese método.

+1

no detectada DOMException: No se pudo leer la propiedad 'contentDocument' de 'HTMLIFrameElement': Bloqueado un marco con origen, no va a trabajar durante dos dominios diferentes. –

+0

¿Tiene alguna sugerencia para que esto también funcione para dominios cruzados? –

3

Si su iframe tiene un atributo name, se puede usar como nombre de ventana. Si el nombre de marco es "MyFrame":

myframe.document.getElementById("myform") // gives you the form element 
+0

También puede usar ID de marco para obtener el elemento por ID, tal como lo hizo al obtener el formulario por ID del marco. Por supuesto, el formulario también debe tener una identificación. – Eddie

Cuestiones relacionadas