Het is niet voor irritante alerts ofzo ;)
Het gaat om een chatbox die ik zelf aan t bouwen ben. Als een gebruker de chatbox sluit moet hij uit de gebruikers_tabel van mn mysql-database gehaald worden.
<script>
window.onclose = <hoe roep ik hier een php scriptje op dan?>
</script>
Ben al stukje verder. Heb nu een Javascript die een .php-bestand aanroept die op zijn beurt de chat-sessie goed afsluit.
Alleen wordt dat script aangeroepen door:
<BODY onUnload="functie()">
Het script start niet alleen als het scherm gesloten wordt (wat ik wil) maar ook als de pagina ververst wordt, en dat moet dus niet gebeuren. Weet iemand hoe ik dit kan oplossen? Het javascript moet dus alleen gestart worden als het scherm gesloten wordt, niet bij een refresh.
Met alle respect maar hier is HTTP niet voor bedoeld, HTTP is stateless, er is geen continue verbinding tussen client en server, de server kan niet weten wanneer de client de pagina sluit, de URL verlaat, zijn PC afzet of misschien wel ontploft :)
onunload is geinig, maar gaat inderdaad ook af met een refresh of wijzigen van de URL.
Je lost dit alleen netjes op met een client-server-tool welke gewoon een continue verbinding heeft, dat kan een losse executable zijn of bijvoorbeeld een servlet.
@ Jelmer: ik moet het nog in andere browsers testen, maar safari werkt dus alvast NIET :(
@ Remco: klopt, dat kan de server niet weten. Dit is dus zeker geen sluitend script.
Toch vind ik het geen gek idee. Bij een unload event stuur ik een waarde naar het opener-venster en in dat venster check ik of het popup venster nog open is.
Veel meer kun je volgens mij met JavaScript niet doen, Dennis!