Voor zover ik weet, kun je niet echt testen of de browser wordt gesloten; u kunt alleen testen of een venster (of tabblad) wordt gesloten. Dat is over het algemeen voldoende, tenzij er natuurlijk een paginavernieuwing plaatsvindt, aangezien dit geldt als zowel het sluiten als het opnieuw openen van een webpagina in een venster of tabblad. Wat nodig is, is een event-handler voor een klik op de pagina-refresh-knop van de browser, maar ik weet niet zeker of die bestaat. Hier is iets:
Hoe toon je de "Weet je zeker dat je deze pagina wilt verlaten?" wanneer wijzigingen doorgevoerd?
en ook
Browser sluiten gebeurtenis en pagina vernieuwen
Een ding dat ik ben tegengekomen bij het zoeken naar iets over een gebeurtenis-handler voor het vernieuwen van pagina's, is het idee van het gebruik van "lokale opslag". U kunt, als onderdeel van de on-before-unload-handler, een klein gegevensitem, voorzien van een tijdstempel, in lokale opslag plaatsen. Activeer een soort timer op de Server en wacht tot die tijd is verstreken voordat je de sessie wist. Wanneer uw pagina is geladen, test u de lokale opslag voor dat gegevensitem. Als het bestaat en de tijdstempel zeer recent was, weet je dat de pagina is vernieuwd en kun je de juiste dingen doen op basis van dat weten - zoals het verzenden van een AJAX-bericht naar de server om hem te vertellen de sessie nog niet te wissen.