Avatar billede rzj Nybegynder
22. september 2002 - 21:43 Der er 7 kommentarer og
1 løsning

lukke vindue fra andet vindue efter reload

Jeg er ved at blive sindsyg !
Jeg har en upload funktion som åbner et vindue :
<script language="JavaScript" type="text/javascript">
<!--
var uploadWin;
function uploadAlert(f){
if(f.file.value == ""){
  alert("Du har ikke angivet en fil til upload");
  return false;
}else{
  uploadWin = window.open ("uploadAlert.php","uploadAlert", "width=500, height=200");
  return true;
}
}
uploadWin.close();
//-->
</script>
<form action="'.$PHP_SELF.'" enctype="multipart/form-data" method="post" onSubmit="return uploadAlert(this);">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="file" size="29"><br>
<input type="submit" name="upload" value=" Send foto ">
<input type="reset" value="  Fortryd  ">
</form>

Den åbner vinduet so far so good !

Men så kommer problemet ! Jeg anvender PHP til upload og funtionen upload() varetager dette og når funktionen har kørt reloades siden selvfølgelig og så har jeg prøvet med at lade upload() funktionen udskrive:

uploadWin.close();

men det er somom den ligesom har 'glemt' vinduet efter at det er reloadet.
Hvad skal jeg gøre, drenge og piger??
Avatar billede nikolajdu Nybegynder
22. september 2002 - 21:46 #1
Prøv at lave navnet og variablen ens :

uploadWin = window.open ("uploadAlert.php","uploadWin",
Avatar billede rzj Nybegynder
22. september 2002 - 21:52 #2
nope - jeg får fejlen "'uploadWin' er ikke defineret"
uanset hvad jeg kalder popup'en. Det "nye" vindue (altså ikke popup, men opener vinduet efter upload er gennemført) kender simpelthen ikke til objektet !!
Avatar billede nikolajdu Nybegynder
22. september 2002 - 21:54 #3
Hvis du reloader siden så findes din "opener" jo heller ikke længere?? Er det fordi du vil loade data ind i popup vinduet?
Avatar billede rzj Nybegynder
22. september 2002 - 21:59 #4
næ, det er fordi at siden reloades ganske automatisk efter uploadet er gennemført på serveren - og det kan jeg desværre ikke lave om på. Men det er jo også meget almindeligt forekommende ;-)
Avatar billede nikolajdu Nybegynder
22. september 2002 - 22:00 #5
Jo men så mister du din opener status...
Avatar billede rzj Nybegynder
22. september 2002 - 22:07 #6
jooo, det er jo ligesom også den konklusion jeg er kommer frem til og derfor søger jeg hjælp. Hvordan får jeg et givent vindue til at lukke når en side loades ? Vinduet har navnet uploadWin.
Avatar billede rzj Nybegynder
23. september 2002 - 13:33 #7
Se evt. også http://www.eksperten.dk/spm/124797
hvor olebole og jeg har en heftig debat tilsidst. Det er her jeg mener hele problematikken ligger. PHP er server-side og output til klient sker først når hele scriptet er kørt. Derfor virker OleBole's forslag ikke. Jeg er dog tilbøjelig til at være i tvivl, da han jo skriver at det virker for ham !!??
Det med frames er jeg ikke meget for...men det er mest af etiske årsager
;-)
Jeg er villig til at smide flere point for et løsningsforslag, men der er måske ikke nogen der har mod på det?
Avatar billede rzj Nybegynder
23. september 2002 - 14:16 #8
jeg lukker -> Løsning er:
Ved klik på Upload fil i formularen: onSubmit="uploadWin = window.open("uploadAlert.php", "uploadWin" ...);"
Så åbner vinduet med det samme. Det ville det IKKE gøre hvis det først åbner når upload() php-funktionen eksekvere da alle print statements først sendes til klienten når scriptet er færdigafviklet.
Når scriptet så går igang med at eksekevere starter jeg med at åbne vinduet igen og med samme variabel tildeling:
uploadWin = window.open("uploadAlert.php", "uploadWin" ...);"
Det betyder at når scriptet er færdigt med at eksekvere og outputter alle print-statements til klient, så redefineres indhold af uploadWin, men det er den samme fil der vises (uploadAlert.php). Brugeren vil ikke kunne se forskellen !
Dernæst lukkes det umiddelbart med:
uploadWin.close()
Dette er selvfølgeligt komplet uforståeligt for Jer, men det er ret svært at forklare sådan umiddelbart ;-)
Smart løsning er det måske ikke, men det virker...
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