Avatar billede tigertool Nybegynder
20. juni 2004 - 13:59 Der er 14 kommentarer og
1 løsning

Popup sender værdi retur til hovedside

Jeg har en side (nu kaldet hovedside) som åbner en popup ved at man klikker på et link:

<a href='#' onclick='window.open("popup.htm","popup","width=200,height=100,status=no");'>Åben nu</a>

Mit spørgsmål er nu, hvordan laver jeg det sådan at en værdi fra popup.htm bliver sendt retur til hovedsiden og hvordan henter jeg værdien på hovedsiden igen?
Avatar billede roenving Novice
20. juni 2004 - 14:04 #1
Du kan direkte fra popup'en sætte en værdi på hovedsiden:

<button onclick="opener.document.FORMNAME.FELTNAME.value='Hej fra popupen'">Klik her</button>
Avatar billede Slettet bruger
20. juni 2004 - 14:04 #2
I popup.htm

kan du referere til hovedsiden med window.opener

F.eks.

window.opener.document.getElementById['feltnavn'].value = 'her er værdien';

Hvis du så på din hovedsiden har f.eks. et formfelt med id'et feltnavn, så sættes der nu en værdi i dette felt.
Avatar billede tigertool Nybegynder
20. juni 2004 - 17:04 #3
Hmm..

Så bliver feltnavnet's værdi jo bare lig værdien..

Men så skal der jo reloades i mit tilfælde? Kan man så også reloade hovedsiden fra popupen?
Avatar billede Slettet bruger
20. juni 2004 - 17:07 #4
Ja, så kan du bare:

window.opener.location.href='dinside.html?foo=bar';
Avatar billede roenving Novice
20. juni 2004 - 17:07 #5
opener.location.reload(true);

-- og hvis du skal submitte data, kan du f.eks.:

<form action="dinHovedside.htm" target="minParent" onsubmit="opener.name='minParent';return true;">
Avatar billede tigertool Nybegynder
20. juni 2004 - 17:19 #6
Hmm..
Det kan jeg ikke få til at virke.

Jeg har lige prøvet med disse 2 filer:

index.htm:
<script>
var test;
</script>
<a href='#' onclick='window.open("popup.htm","popup","width=200,height=100,status=no");'>Åben nu</a>
<br /><br />
<script>
document.write(test);
</script>

og
popup.htm:
<script>
function fu(va)
{
    window.opener.getElementById['test'].value=va;
    opener.location.reload(true);
}
</script>
<a href='#' onclick="fu('hej med dig');">Tilbage</a>

Og det virker ikke...
Avatar billede roenving Novice
20. juni 2004 - 17:25 #7
index.htm:
<a href='#' onclick='window.open("popup.htm","popup","width=200,height=100,status=no");'>Åben nu</a>
<br /><br />

<span id="test"></span>
Avatar billede roenving Novice
20. juni 2004 - 17:26 #8
Hov, det skal så være:

popup.htm:
<script type="text/javascript">
function fu(va)
{
    opener.document.getElementById['test'].innerHTML=va;
    opener.location.reload(true);
}
</script>
<a href='#' onclick="fu('hej med dig');">Tilbage</a>
Avatar billede roenving Novice
20. juni 2004 - 17:30 #9
Øv, endnu en tavetosse:

  opener.document.getElementById('test').innerHTML=va;

-- da [] i javascript bruges til at beskrive et indeks, mens () bruges til funktions-parametre ...
Avatar billede tigertool Nybegynder
20. juni 2004 - 17:32 #10
Virker stadig ikke.. :(
Avatar billede roenving Novice
20. juni 2004 - 17:34 #11
Nu er der også en reload med, så hvis du fjerner reload-linjen, kan du se at popup'en sender en værdi !-)
Avatar billede tigertool Nybegynder
20. juni 2004 - 17:35 #12
Hmm.. nu virker det - hvis jeg fjerner den reload..

Takker..

Gider i begge lige smide et svar? så deler jeg points ud :)
Avatar billede roenving Novice
20. juni 2004 - 17:38 #13
Velbekomme '-)
Avatar billede Slettet bruger
20. juni 2004 - 18:02 #14
Ellers tak :)
Avatar billede roenving Novice
20. juni 2004 - 18:11 #15
-- og tak for point ;~}
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