Avatar billede clausn Nybegynder
19. april 2001 - 21:58 Der er 19 kommentarer og
1 løsning

\"Vent venligst side\"

Hejsa,

Jeg har en side hvor jeg har en form der sender nogle ting til en anden side, og inden at den side behandler de data færdig vil jeg gerne have en \"Vent venligst\" side op på skærmen.

Min form ser sådan her ud:
<form ACTION=\"data.asp\" METHOD=\"get\" onsubmit=\"window.open(\'/global/wait.asp\',\'wait\',\'height=300,width=500\');\">

Dette fungere sådan set også fint nok.
Mit problm er bare at få lukket det vindue igen.
Jeg har incl. følg. kode i min data.asp:

<script language=javascript>
<!--
//    window.wait.close()
wait.close()
//    wait.close();
//    wait.window.close();
//    vent.parent.close();
//-->
</script>

Sådan prøvet mig lidt frem med disse forskellige kombinationer, men der er ingen af dem der virker.
Den skriver at \"wait er ikke definereret\"

Hvordan definere man sin side, så den kan lukke igen...??

Hjælp søges!
Avatar billede engrob Nybegynder
19. april 2001 - 22:00 #1
Prøv at give vinduet et andet navn end wait. et eller andet sindsygt navn.
Avatar billede parazite Nybegynder
19. april 2001 - 22:01 #2
Uhm... prøv med window.self.close();
Avatar billede engrob Nybegynder
19. april 2001 - 22:03 #3
paraszite>> Tror du ikke det er meningen at han vil lukke vinduet fra det oprindelige vindue.
Avatar billede jakoba Nybegynder
19. april 2001 - 22:03 #4
wait er et lidt farligt navn, det skulle ikke under mig om der er andre ting i browseren der hedder wait.

Så du bør gøre det klart at det er rammenavnet \"wait\" du mener. det kan du fx gøre ved at sige:

window.frames[\"wait\"].close()

så skulle det være muligt at finde den rette pointer til det nye vindue.

mvh www.fotx.net/JakobA
Avatar billede spectual Nybegynder
19. april 2001 - 22:04 #5
Det her virker for mig:

<html>
<BODY BGCOLOR=\"#FFFFFF\">
<script language=\"JavaScript\">

var test = window.open(\'/global/wait.asp\',\'zap\',\'height=300,width=500\');

function luk() {
test.close();
}

</script>

<input type=\"button\" onClick=\"java script:luk();\" value=\"test\">
</BODY>
</HTML>
Avatar billede parazite Nybegynder
19. april 2001 - 22:04 #6
Aaaah... *G* Bare glem det... ;)
Avatar billede clausn Nybegynder
19. april 2001 - 22:07 #7
Jakoba:
Følg. fejl kommer hvis jeg bruger dit forslag:
window.frames[\"tempvindue\"].close()

Fejl: window.frames.tempvindue er null eller ikke et objekt

Jeg har omdøbt WAIT til TEMPVINDUE

Nogen andre forslag? Det skal være sådan så siden data.asp selv lukker vindueet TEMPVINDUE (wait.asp)
Avatar billede jakoba Nybegynder
19. april 2001 - 22:08 #8
en anden (og sikrere) mulighed er at lade dit  window.open  kald gemme vinduets adresse i en variabel:
onsubmit=\"self.winPtr = window.open(\'/global/wait.asp\',\'wait\',\'height=300,width=500\');\">

så kan du helt sikkert lukke vinduet med

winPtr.close();

mvh JakobA
Avatar billede clausn Nybegynder
19. april 2001 - 22:11 #9
Jakoba: \"winPtr er ikke defineret\"

hvordan definere man det??
Avatar billede jakoba Nybegynder
19. april 2001 - 22:11 #10
an respons:  winduesnavnet skal staves med eksakt samme store og små bogstaver.
Avatar billede spectual Nybegynder
19. april 2001 - 22:15 #11
jakoba -> med andre ord - det som mit eksempel gør :-)
Avatar billede jakoba Nybegynder
19. april 2001 - 22:19 #12
den bliver defineret ved at få en værdi.

men hov. vi har allesammen gået ud fra at den side der skal lukke vinduet er den samme side som der åbnede det. Det lyder som du vil skrive noget i din fil  data.asp  der lukker vinduet.

Det ved jeg ikke hvordan man kan.

du kan skrive et lille script i vinduet selv, der lukker det når den gamle side bliver overskrevet af data.asp.

<script> <!-- //NB: i filen wait.asp

function maybeClose () {
  if ( !( opener ) || !( opener.winPtr ) )
    self.close();
}; //end maybeClose ()

setInterval( \"maybeClose()\", 100 );

</script>

mvh JakobA
Avatar billede jakoba Nybegynder
19. april 2001 - 22:22 #13
forudsætter du har  self.winPtr = window.open i din  onsubmit.
Avatar billede clausn Nybegynder
19. april 2001 - 22:22 #14
Jeg sender fra default.asp til data.asp, og vindueet jeg åbner hedder wait.asp

Det er data.asp der skal lukke vinduet wait.asp, når den har indlæst hele dokumentet (over 1000 linjer)

Og, nej. Jeg vil ikke lukke det efter fx 5 sekunder. Microsoft har gjort det med Windowsupdate.com, og hvis de kan på deres side, kan jeg også på min (ved bare ikke lige helt hvordan endnu)
Avatar billede spectual Nybegynder
19. april 2001 - 22:30 #15
Så skal du ihvert sørge for at response.buffer er slået til i data.asp

Måske vil det virke efter hensigten, hvis du som det sidste i data.asp response.write\'r javascript kode, som vil lukke wait vinduet.
Avatar billede jakoba Nybegynder
19. april 2001 - 22:32 #16
Tjae. et gæt:
de har frames i deres side, så de kan oprette en variabel oppe i frameset vinduet der peger på det der åbnede vindue.

Du har ret i at med mit seneste vil vinduet lukke længe før det skal.

Allenfals, hvis du har frames er det nemt:

onsubmit=\"parent.winPtr = window.open(\'/global/wait.asp\',\'wait\',\'height=300,width=500\');\">

og en onload i data.asp

<body ... onload=\"parent.winPtr.close()\">

men bruger du rammer?
Avatar billede clausn Nybegynder
19. april 2001 - 22:32 #17
Allernederst i data.asp står det hele som alm. HTML kode. Der er kun asp kode i toppen af dokumentet.

Hvis det hjælper lægger jeg gerne 100 point oveni til en der finder en løsning
Avatar billede clausn Nybegynder
19. april 2001 - 22:33 #18
Det er uden rammer.
Det er alm. dødelig HTML der bliver udskrevet til siden
Avatar billede jakoba Nybegynder
19. april 2001 - 22:38 #19
Desværre. det bedste jeg kan foreslå er:

function maybeClose () {
  if ( !( opener ) || !( opener.winPtr ) ) {
    clearInterval(timHandle)
    setTimeout( self.close(); 2000 ); // et lidt bedre sjus end 5 sek da vi ikke
                                              // starter før filen begunder at komme
  };
}; //end maybeClose ()

var timHandle = setInterval( \"maybeClose()\", 100 );

mvh JakobA

Avatar billede clausn Nybegynder
22. maj 2001 - 21:41 #20
Spr. lukket grundet ingen var der kan bruges :/
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