John Kjoller skrev:
> Kan man lægge en handling ind som udføres, når browseren lukkes, og siden
> forlades?
I princippet ja. I praksis kan det være forhindret af browseren.
Der er to hændelser man kan kalde i forbindelse med lukning af et
vindue. Onunload er understøttet af de fleste browsere mens
OnBeforeUnload så vidt jeg ved kun understøttes af IE og
Mozilla/Firefox.
> Jeg vil gerne sende en besked til min database, når brugeren forlader siden,
> eller lukker browseren.
Her kommer problemet. For at sende noget til din database skal du hente
en ny side fra serveren. Det kan enten gøres med et pop op-vindue eller
ved at omdirigere den adresse man er på vej til. Pop op-vinduet vil
blive blokeret af enhver anstændig browser i dag. Omdirigeringen vil
ikke virke hvis man bruger onunload og vinduet forsøges lukket (men kan
virke hvis man er på vej til et andet site).
Helt generelt er problemet at onunload/onbeforeunload meget let kan
misbruges (og også i stor stil er blevet misbrugt) til at hindre at man
forlader en side, eller til at åbne 20 tilknyttede sider når man
forlader en enkelt. Derfor sætter moderne browsere restriktioner for
hvad der kan foregå i sådan et unload-script.
Så vidt jeg ved er den mindst ringe løsning at bede brugerne om at
tillade pop op-vinduer fra en given side - og så bruge pop op til at
kommunikere med serveren. Pop op-vinduet kan og bør lukke sig selv når
behandlingen er færdig. En løsning der måske kan virke i browsere der
forstår unbeforeunload er at prøve at refreshe en indlejret iframe.
> Der vil være links på siden, - til andre sider "udenfor", og disse åbner i
> nye vinduer. - Og dette skal ikke sende besked til databasen. KUN når siden
> forlades/lukkes.
Det er ikke noget problem. onunload og onbeforeonload er hændelser til
window-objektet - åbning af nye vinduer vil ikke resultere i kald til
dem.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html