2009-01-25 8 views
11

J'essaie d'accéder à un formulaire et à ses éléments. Le formulaire est dans une iframe et le code javascript qui accède au formulaire se trouve dans le document principal.accéder à un formulaire qui est dans un iframe

Je ne sais pas quoi d'autre je devrais mettre dans la question, alors s'il vous plaît laissez-moi savoir si j'ai besoin d'ajouter quelque chose d'autre.

(forme et la page principale sont dans le même domaine)

Merci

Répondre

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

Ou vous pourriez avoir un code dans le cadre qui définit une variable dans parent à la forme, mais je n » Je fais confiance à cette méthode.

+1

Uncaught DOMException: Impossible de lire la propriété « contentDocument » de « HTMLIFrameElement »: bloqué un cadre avec l'origine, il ne fonctionnera pas pour deux domaines différents. –

+0

avez-vous une suggestion pour faire ce travail pour les domaines croisés aussi? –

3

Si votre iframe a un attribut name, cela peut être utilisé comme nom de fenêtre. Si le nom du cadre est « MyFrame »:

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

Vous pouvez également utiliser l'ID de cadre pour obtenir l'élément par ID, tout comme vous l'avez fait pour obtenir le formulaire par ID à partir du cadre. Bien sûr, le formulaire doit aussi avoir une identification. – Eddie