Avatar billede skovtrold Nybegynder
13. maj 2003 - 21:22 Der er 30 kommentarer og
1 løsning

Åben url og opdater parent window

Hej,

I mit parent vindue har jeg et link og hvis man klikker på dette link, skal jeg åbne en popup med en url på en anden server og køre en asp-side hvorefter vinduet skal lukkes og parent-vinduet skal opdateres.
Hvordan ???

Hvis det kan lade sig gøre at køre asp-filen fra den anden server uden at jeg skal åbne en popup vil jeg helst det, men hvis ikke det kan lade sig gøre uden en popup, er det også ok.
Avatar billede -master-d- Nybegynder
13. maj 2003 - 21:47 #1
Sådan her må det være.

<a href="#" onclick="window.open('url.html','win1','');parent.location.reload();">
Avatar billede skovtrold Nybegynder
13. maj 2003 - 21:48 #2
Men så kan siden jeg åbner vel ikke nå at loade før parent loader?
Avatar billede -master-d- Nybegynder
13. maj 2003 - 21:52 #3
Jo det skal den nok.
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:04 #4
ok, jeg får det lige testet.
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:34 #5
Det virker desværre ikke. Parent når at loade inden popup-vinduet har loadet.
Avatar billede -master-d- Nybegynder
13. maj 2003 - 22:45 #6
Nåh havde misforstået spørgsmålet.

På din parent side har du

<a href="#" onclick="window.open('url.asp','win1','');">

og lige efter dit asp script skriver du

<script>
window.opener.location.reload();
window.close();
</script>
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:50 #7
Jeg ved ikke om jeg gør noget galt, men jeg får "Permission denied" når popup'en er åbnet...?
Avatar billede grunken Nybegynder
13. maj 2003 - 22:51 #8
Hvad er idéen lige med den popup ?

det er måske lettere at lave en løsning der psser dig bedre, hvis der kommer lidt mere info på bordet :)
Avatar billede grunken Nybegynder
13. maj 2003 - 22:52 #9
Hiver du nogle variabler fra den popup ?
Avatar billede olebole Juniormester
13. maj 2003 - 22:53 #10
<ole>

Du kan ikke refresh'e hovedvinduet fra popUp'en, da de jo ligger under hvert sit domæne. Det vil JavaScript ikke tillade  :)

/mvh
</bole>
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:55 #11
Jeg har en administrations-side med en pris i et input-felt.
Prisen hentes fra en database.
Databasen opdateres fra en anden server x antal gange i døgnet, så jeg vil lave et link, så man med det samme kan få opdateret databasen med en ny pris.
Så for at opdatere databasen, kræves det at jeg åbner en url på en anden server end der hvor mit parent-vindue er, og dette vil jeg jo helst gøre så brugeren ikke opdager det.
Min første idé var at åbne en popup som opdaterer databasen - når dette var gjort lukkede popup'en automatisk og opdaterede samtidig parent-vinduet, så brugeren kunne se at den nye pris var hentet.
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:56 #12
> ole
Så er det derfor :)
Tak for det.
Har du en løsning?
Avatar billede skovtrold Nybegynder
13. maj 2003 - 22:57 #13
Alternativt, må brugeren selv opdatere parent, men det ville nu være optimalt hvis det skete dynamisk...
Avatar billede skovtrold Nybegynder
13. maj 2003 - 23:01 #14
En anden mulighed er at bruge master-d's løsning:
<a href="#" onclick="window.open('url.html','win1','');parent.location.reload();">
Hvis altså man kan sætte forsinkelse på reload parent? Kan man det?
For så kan popup'en nå at loade.
Avatar billede olebole Juniormester
13. maj 2003 - 23:01 #15
Har du kontrol over den anden server?
Avatar billede skovtrold Nybegynder
13. maj 2003 - 23:03 #16
> ole
Ja
Avatar billede grunken Nybegynder
13. maj 2003 - 23:06 #17
mulighed:

side 1

<script>
function hund{
  var pops = window.open('url.html','win1','height=200 width=200');
  setTimeout("location.reload('fil.html');pops.close();", 2000);
}

<a href="#" onclick="hund();">Klik</a>
Avatar billede olebole Juniormester
13. maj 2003 - 23:06 #18
<html>
<head>
<script type="text/JavaScript">
function getData() {
    var str = '<iframe src="en_side.asp"></iframe>';
    document.getElementById("frDIV").innerHTML += str;
}
</script>
</head>
<body>

<div id="frDIV" style="position:absolute;width:1px;height:1px;visibility:hidden"></div>

<button onclick="getData()">Opdater Data</button>
</body>
</html>

Når filen på den anden server 'en_side.asp' er kørt, redirecter den til en anden fil på serveren, hhvor dit doku med iframen ligger. I den står bare:

<html>
<script type="text/JavaScript">
parent.location.reload(true);
</script>
</html>

/mvh
Avatar billede skovtrold Nybegynder
13. maj 2003 - 23:20 #19
> grunken
Jeg kan ikke få dit script til at virke..
Fejl "pops undefined"

> ole
Jeg går ud fra du mener jeg skal redirecte til parent-serveren?
Det kan jeg ikke, da det er en administratios-side beskyttet af login...

Jeg tror jeg lader brugeren opdatere siden selv...
Avatar billede olebole Juniormester
13. maj 2003 - 23:28 #20
Nejnej ... det har du vist misforstået. Du må da kunne lægge en fil udenfor det beskyttede område  :)
Avatar billede grunken Nybegynder
13. maj 2003 - 23:29 #21
Sorry!, det her virker :

<script>
function hund(){
  pops = window.open('url.html','win1','height=200 width=200');
  setTimeout("location.reload('fil.html');pops.close();", 2000);
}
</script>

<a href="#" onclick="hund();">Klik</a>
Avatar billede skovtrold Nybegynder
13. maj 2003 - 23:33 #22
> grunken
Det virker bare nu :)
Tak for det.
Lægger du lige et svar?

Og tak til jer andre for hjælpen, men jeg valgte grunken's løsning da jeg synes det var den enkleste.
Avatar billede olebole Juniormester
13. maj 2003 - 23:40 #23
Ehhhh ...... hvad så den dag, der er lidt meget trafik på serveren? Eller hvad med brugeren med en dårlig forbindelse? Hvordan opdaterer han siden? Timeouts på den slags ting bør _altid_ undgåes ... det kan næsten kun gå galt.
Du kan sagtens gøre det andet - jeg tror bare, du har misforstået et eller andet  :)
Avatar billede grunken Nybegynder
13. maj 2003 - 23:40 #24
eneste anke der kunne være er at man kan være uhedig at asp-scriptet ikke når at køre på den fastsatte tid!..så for din egen og brugernes skyld må vi hellere udbygge det lidt

Øjeblik :)
Avatar billede skovtrold Nybegynder
13. maj 2003 - 23:44 #25
Det er helt fint som det er, for det er kun en midlertidig løsning til alle sider kommer til at ligge på samme server, for så kan jeg bruge det oprindelige javascript.
Avatar billede grunken Nybegynder
13. maj 2003 - 23:50 #26
okay then :)
Avatar billede grunken Nybegynder
13. maj 2003 - 23:59 #27
men lige for en ordens skyld :), har jeg lige udviddet det lidt så siden hvor du åbner popuppen fra hele tiden står og checker om den er lukket, på den måde er man altid sikret at asp'n er færdig inden, man reloader parent:)

siden hvor du åbner poppen:

<script type="text/javascript">
function hest() {
if (pops.closed) {
  location.reload('fil.html');
}else{
  setTimeout("hest();", 2000);}
}

function hund(){
  pops = window.open('url.html','win1','height=200 width=200');
  setTimeout("hest();", 2000);
}
</script>

<a href="#" onclick="hund();">Klik</a>


i bunden af siden hvor du kører ASP'n skal der bare tilføjes

<script>
self.close
</script>
Avatar billede olebole Juniormester
14. maj 2003 - 00:08 #28
Langt bedre, grunken  ;o)
Måske lige en parentes:
<script>
  self.close();
</script>
/mvh
Avatar billede grunken Nybegynder
14. maj 2003 - 00:16 #29
Jamen :(

hehe, ole, så er vi vist nået til sengetid igen :)
Avatar billede olebole Juniormester
14. maj 2003 - 01:04 #30
yups ;o)
Avatar billede skovtrold Nybegynder
14. maj 2003 - 09:11 #31
Tak for 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