Toon posts:

[JS] Formulier in een iframe aanspreken in IE5

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Mensen.

Ik heb de volgende situatie: Ik heb een pagina met daarin een iframe. De pagina in dit iframe bevat een formulier. Nu wil ik waardes uit dit formulier inlezen in de parent pagina.

Dit alles werkt op dit moment in IE6 en mozilla doormiddel van het contentWindow property van het iframe. Deze werkt echter niet in IE5 hiervoor moet ik dus een andere oplossing vinden.

Omdat ik verschillende malen waardes uit dit formulier moet halen in verschillende functies heb ik een functie getFormInIframe geschreven. Deze haalt het formulier op. zodat ik in een functie de volgende werkwijze kan gebruiken:

code:
1
2
f = getFormInIframe ();
alert (f.formveldnaam.value);


Ik heb nu de volgende code:

parent pagina

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<script>
function getFormInIframe ()
{
    if (typeof document.getElementById ('preview').contentWindow == 'undefined') {
                // Hier moet de IE5 oplossing komen
        //return parent.frames['preview'].document; //.elements['testip'].value
        //return window.frames['preview'].document.form;
    } else {
        return document.getElementById ('preview').contentWindow.document.form;
    }
}
</script>
</head.

<body>

<iframe id="preview" name="preview" src="iframe.html"></iframe>

</body>

</html>


De pagina iframe.html

code:
1
2
3
4
5
6
7
8
9
10
11
<html>

<body>

<form name="form" id="form">
    <input type="hidden" name="formveldnaam" value="24.7" />
</form>

</body>

</html>


Wie weet hoe ik dit moet aanpakken?

Al vast bedankt!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:06

crisp

Devver

Pixelated

Gewoon:
JavaScript:
1
parent.frames['preview'].document.forms['form'];

dat werkt voor zover ik weet in alle gangbare browsers.

Intentionally left blank


Verwijderd

Topicstarter
Dat dacht ik ook, maar de volgende regel geeft undefined terug:

code:
1
alert (typeof parent.frames['preview'].document.forms['form']);


Vreemd genoeg geeft deze regel wel object terug

code:
1
alert (typeof parent.frames['preview'].document);

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Verwijderd schreef op 16 juli 2004 @ 12:51:
Dat dacht ik ook, maar de volgende regel geeft undefined terug:

code:
1
alert (typeof parent.frames['preview'].document.forms['form']);


Vreemd genoeg geeft deze regel wel object terug

code:
1
alert (typeof parent.frames['preview'].document);
En dit dan:

code:
1
2
alert (typeof(parent.frames['preview'].document.forms['form']));
alert (typeof(parent.frames['preview'].document));

Verwijderd

Topicstarter
Zelfde resultaat...

Verwijderd

Topicstarter
probleem is opgelost (Er was nog een iframe op de pagina waarvan ik het id op view had gezet, maar de name op preview. Hierdoor stonden er 2 iframes op de pagina met de zelfde name :X en een verschillende id. In IE6 en mozilla gebruikte ik getElementById dus daar deet hij het wel)

/me Gaat inelkaar gedoken in een hoekje zitten.

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

En dit dan:
code:
1
parent.frames["preview"].frameElement.document.forms["form"]


Edit:
Aha, dus, kan gebeuren :P

[ Voor 30% gewijzigd door André op 16-07-2004 13:25 ]

Pagina: 1