Avatar billede josto Nybegynder
23. september 2008 - 20:46 Der er 5 kommentarer og
1 løsning

Udfylde felter i Iframe

Har søgt en del, men kan umiddelbart ikke finde en løsning.

Jeg forsøger at udfylde nogle formfelter via JavaScript. I stedet for at folk skal udfylde felterne, skal jeg udfylde dem for folk. Dermed skulle det gerne blive nemmere for folk.

Herunder følger kernen i problemet:

side1.html
Indeholder et link, som ved tryk åbner side2.html i et nyt vindue.
Efterfølgende bliver tekstfeltet på side3.html udfyldt med den ønskede værdi.

<html>
<head
    <title>Side1</title>
    <script language="javascript">
        function Opdater()
        {
            //Åbner side2.html i nyt vindue (target="_blank")
            //Udfylder Postnr. med 1234 på side3.html         
        }
    </script>
</head>
<body>
    <form>
        <a onclick="Opdater();">Tryk her</a>
    </form>
</body>
</html>


side2.html
Indeholder en iframe, hvor side 3 findes.

<html
<head>
    <title>Side2</title>
</head>
<body>
...Noget...
<iframe id="contentframe" height="250px" src="side3.html"></iframe>
...Noget...
</body>
</html>


side3.html
Indeholder en form, med et tekstfelt og en submit knap.
<html
<head>
    <title>Side3</title>
</head>
<body>
    <form id ="ifm">
        <input id="Postnr" name="Postnr" type="text" />
        <input id="Submit1" type="submit" value="submit"/>
    </form>
</body>
</html>

Det er lykkedes mig at udfylde feltet fra side2.html (i mit eget testmiljø), men ikke fra side1.html. Jeg har programmeringsadgang til side1.html, mens de to øvrige sider ikke kan ændres.

Mit problem er:
Hvordan tilgår man fra Side1.html felterne på Side3.html via JavaScript?
Hvordan sikre man en rimelig afvikling på forskellige browsere (fx IE, Firefox)?
Avatar billede w13 Novice
23. september 2008 - 23:19 #1
Du tilgår et IFrame med f.eks.:

document.getElementById("contentframe").contentWindow.document.getElementById("Postnr").value="Testværdi";

Og et IFrame i et vindue med:

vinduetsNavn.document.getElementById("contentframe").contentWindow.document.getElementById("Postnr").value="Testværdi";
Avatar billede roenving Novice
24. september 2008 - 06:27 #2
Når du nu ikke har adgang til at ændre filerne, så ligger de måske ikke på samme domæne ?-)

-- for så vil du aldrig kunne gøre det, da det jo vil være ulovlig cross-domain scripting !-)
Avatar billede josto Nybegynder
24. september 2008 - 09:44 #3
w13: Jeg vil prøve det senere i dag - du får besked om resultatet.

roenving: Havde ikke overvejet cross-domain scripting før du nævner det.
Avatar billede josto Nybegynder
26. september 2008 - 15:37 #4
w13 - det ser ud til at virke. Du kan godt lave et svar.
Avatar billede w13 Novice
26. september 2008 - 17:08 #5
:)
Avatar billede w13 Novice
27. september 2008 - 12:57 #6
Tak for points! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester