Avatar billede benjax Nybegynder
28. juni 2001 - 19:49 Der er 1 kommentar og
2 løsninger

Kald af function i parent window

Jeg har to html-filer, fx Parent.html og Child.html.
Parent.html åbner et vindue ved hjælp af window.open(...) med Child.html angivet som URL-parameter. I dette vindue kan brugeren indtaste forskellige oplysninger. Disse skal så sendes tilbage til Parent.html. Hvordan gøres dette?

Jeg har prøvet at oprette følgende i Parent.html
<script>
function setAttrib(a, b)
{
    alert(a + b);
}
</script>

I Child.html har jeg forsøg mig med:
parent.setAttrib(\"bla\",\"blabla\");
og med
parent.document.setAttrib(\"bla\",\"blabla\");

uden held, den kan ikke kalde funktionen. Hvad skal jeg skrive i stedet i Child.html?
Avatar billede netsrac Praktikant
28. juni 2001 - 19:52 #1
opener.setAttrib(\"bla\",\"blabla\");
Avatar billede roenving Novice
29. juni 2001 - 09:34 #2
I det hele taget skal du skrive al din kode i Child.html, da kun pop-up\'en har kendskab til det andet vindue.
Parent har så at sige mistet forbindelsen til det ny vindue (du har jo ikke noget handle til det!), hvorimod Child har opener-objektet, du kan tage fat i.
Derfor skal du have det ind i Child.html, og f.eks. bruge onUnload-event\'en til at smide data ned, så\'n ca. sådan:

function ValueTrans(i, field) {
opener.document.forms[0].elements[i].value=field.options[field.selectedIndex].value
}

Denne funktion tager en værdi fra en Radio, men princippet er der ikke nogen forskel på.

hth
jes
Avatar billede benjax Nybegynder
01. juli 2001 - 19:28 #3
Ideen med at lade det ske ifm onUnload() køber jeg... Tak til jer begge.
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