Avatar billede sho Nybegynder
25. september 2013 - 12:20 Der er 7 kommentarer

Reloade opener.opener inden popup lukkes

Hey,

jeg har et site med frames (I know, men kan ikke gøre noget ved det), hvor jeg har følgende problem:

- Fra hovedvinduet klikker jeg på et link og åbner et popup-vindue (Pop1)
- Fra Pop1 åbner jeg senere endnu et popup-vindue (Pop2)

Når jeg klikker OK i Pop2, submitter jeg en form og skal have lukket Pop2, lukket Pop1 og reloaded hovedvinduet. Reload skal ske med en minimal forsinkelse, så data kan nå ned i databasen inden jeg reloader.

Jeg har nedenstående kode til at virke:

onclick="parent.submitForm('ok');parent.opener.parent.opener.parent.opener.location.reload(true);parent.opener.parent.opener.top.close();parent.opener.top.close();"

Når jeg tilføjer en forsinkelse, lukker vinduerne fint, men hovedvinduet reloader aldrig:

action="parent.submitForm('ok');setTimeout(function() { parent.opener.parent.opener.parent.opener.location.reload(true) }, 1000);parent.opener.parent.opener.top.close();parent.opener.top.close();"

Jeg overser sikkert et eller andet helt banalt, men jeg kan ikke finde ud af hvad...

-Søren
Avatar billede MadsHaupt Juniormester
25. september 2013 - 15:08 #1
Hvad er koden til hele html filen?.
Avatar billede sho Nybegynder
25. september 2013 - 15:48 #2
Server-genereret og lang :-)
Det er tre forskellige filer, men indholdet gør vel ingen forskel på, hvordan siden skal reloades?
Avatar billede MadsHaupt Juniormester
25. september 2013 - 16:53 #3
Nej, det gør det ikke, men det var mere sådan at jeg kunne teste det, og se præcist hvad dit problem er.
Avatar billede sho Nybegynder
25. september 2013 - 21:08 #4
Her er noget skrabet kode:

main.html:
<html><body><img src='http://www.dr.dk/Forside/drdk/DR.Frontpage/Content/img/oline-button_small.png' onclick="window.open('pop1.html',null,'height=400,width=400,status=yes,toolbar=no,menubar=no,location=no');"></body></html>

pop1.html:
<html><body><img src='http://www.dr.dk/Forside/drdk/DR.Frontpage/Content/img/ramasjang-button_small.png' onclick="window.open('pop2.html',null,'height=400,width=400,status=yes,toolbar=no,menubar=no,location=no');"></body></html>

pop2.html:
<html><body><img src='http://www.dr.dk/Forside/drdk/DR.Frontpage/Content/img/ultra-button_small.png' onclick="window.open('pop3.html',null,'height=400,width=400,status=yes,toolbar=no,menubar=no,location=no');"></body></html>

pop3.html
<html><body><img src='http://www.dr.dk/tjenester/drvejret/assets/graphics/icons/MeteoGroup/vejr/82/9.png' onclick="parent.opener.parent.opener.parent.opener.location.replace('http://dr.dk');parent.opener.parent.opener.close();parent.opener.close();parent.close();"></body></html>

pop3.html - med setTimeout, der ikke virker:
<html><body><img src='http://www.dr.dk/tjenester/drvejret/assets/graphics/icons/MeteoGroup/vejr/82/9.png' onclick="setTimeout(function() { parent.opener.parent.opener.parent.opener.location.replace('http://dr.dk') }, 1000);parent.opener.parent.opener.close();parent.opener.close();parent.close();"></body></html>
Avatar billede sho Nybegynder
25. september 2013 - 21:10 #5
<img src='http:...... > er bare links til et billede, for at have noget at klikke på. Det kunne lige så godt have været et tekstlink.
Avatar billede MadsHaupt Juniormester
26. september 2013 - 14:56 #6
sho grunden til at det ikke virkede var at en Timeout køre på en anden tråd så det vindue som skulle gøre det var jo lukket inden der var gået et sekund, så hvis man i stedet kalder en funktion der gør det samme fra det vindue som ikke skulle lukkes.

Rettelse af kode:

main.html:

<html>
<body>
<script type="text/javascript">
function replaceURL() {
setTimeout(function() {
document.location.replace('http://dr.dk');
}, 1000);
}
</script>

<img src='http://www.dr.dk/Nyheder/' onclick="window.open('pop1.html',null,'height=400,width=400,status=yes,toolbar=no,menubar=no,location=no');">
</body>
</html>


pop3.html:

<html>
<body>
<img src='http://www.dr.dk/tjenester/drvejret/assets/graphics/icons/MeteoGroup/vejr/82/9.png' onclick="parent.opener.parent.opener.parent.opener.replaceURL(); parent.opener.parent.opener.close();parent.opener.close();parent.close();">
</body>
</html>
Avatar billede MadsHaupt Juniormester
27. september 2013 - 17:27 #7
sho virker det?.
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