2009-01-25 17 views
11

Ich versuche, Zugriff auf ein Formular und seine Elemente zu erhalten. Das Formular befindet sich in einem Iframe und der JavaScript-Code, der auf das Formular zugreift, befindet sich im Hauptdokument.Zugriff auf ein Formular in einem iframe

Ich bin nicht sicher, was ich sonst noch in die Frage stellen sollte, also lassen Sie mich bitte wissen, wenn ich noch etwas hinzufügen muss.

(Form und Haupt-Seite ist in der gleichen Domäne)

Dank

Antwort

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

Oder Sie könnten einen Code in dem Rahmen, die eine Variable in parent auf die Form legt, aber ich wouldn‘ t vertraue dieser Methode.

+1

Uncaught DOMException: Fehler beim ‚contentdocument‘ Eigenschaft von ‚HTMLIFrameElement‘ zu lesen: Blockiert ein Rahmen mit Ursprung, wird es nicht für zwei verschiedene Domänen arbeiten. –

+0

Haben Sie Vorschläge, dies auch für Cross-Domains zu tun? –

3

Wenn Ihr Iframe ein name-Attribut besitzt, kann dies als Fenstername verwendet werden. Wenn der Rahmen Name „myframe“:

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

Sie können auch die Rahmen-ID verwenden, um das Element nach ID zu erhalten, genau wie beim Abrufen des Formulars nach ID aus dem Rahmen. Natürlich muss das Formular auch eine ID haben. – Eddie

Verwandte Themen