/ Forside/ Teknologi / Udvikling / HTML / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
onexit kun site, ikke page
Fra : leifnel
Vist : 536 gange
50 point
Dato : 11-08-03 14:02

Jeg vil gerne have kørt et script, evt i et popup, der opdaterer noget i databasen, når webbrugeren forlader sitet, men ikke når man skifter side indenfor sitet.

Kan det lade sig gøre, dvs. ved browseren hvor der hoppes hen til, så man kan vælge i javascriptet, eller må det laves serverside?

Leif

 
 
Kommentar
Fra : molokyle


Dato : 11-08-03 22:27

Man kan lave alt muligt! Se her : http://home20.inet.tele.dk/friheden/notesblok.html#farvel

Vælg : Knappen = [ Farvel ] .

.. er det sådan noget? Køre i et nyt vindue, når man forlader ? Bare sig til; så får du koden

</MOLOKYLE>

Kommentar
Fra : leifnel


Dato : 12-08-03 08:04

Molokyle: Dit script tager ikke højde for hvor man tager hen, om det er til et andet site eller en anden side på samme site.


Accepteret svar
Fra : molokyle

Modtaget 50 point
Dato : 12-08-03 08:15

Det er rimelig simpelt; du bruger "onunload=" i din <body> til at angive det script, der skal udføres når siden lukkes.
Hvis du via en knap, et link eller andet f.eks kalder "javascript:this.close()" for at lukke vinduet, vil <body> scriptet blive kørt. Desværre findes der ikke en tilsvarende "onclose=". Scriptet vil derfor også blive kørt, når siden forlades.

Imidlertid har vi diskutteret det andetsteds og måske fundet en brugbar løsning til dig :

Kode
Hi...
Is it possible to trigger an event in javascript (similar to onUnload) only when the browser is closed or the user navigates offsite (clicks a link or a bookmark) but NOT when a user moves on to another page within the same site?

Comment :

Only by using a REALLY ugly hack that measures the size of the browser onUnload.

<SCRIPT LANGUAGE="JavaScript">
<!--
function RorC() {

var top=self.screenTop;
if (top>9000)
{alert('window was closed')}
else
{alert('window was Refreshed')}
}

//-->
</SCRIPT>

</HEAD>
<BODY onunload="javascript:if (document.all){RorC()} else {var top=window.outerWidth;if
(top==0) {opener.alert('window was closed')} else {opener.alert('window was Refreshed')}}">

Accepted Answer :

And here is the leave or stay code

<body onLoad="leaving=true" onUnload="if (leaving) window.open('http://www.DIT_SITE.DK/farvel.html,'_blank')">

<a href="stay.html" onClick="leaving=false">Stay</a>
<a href="http://www.ANDET_SITE.DK">Leave</a>

Comment :

Ahh thats great
So, for my form submit, would I use an OnSubmit for the form or an OnClick for the form button to set leaving=false?

Comment :

<form onSubmit="leaving=false">

or if you need to validate too:

<script>
function validate(theForm) {
.
.
.

leaving=false
return true
}

<form onSubmit="return validate(this)">


Nærmere tror jeg ikke vi kommer det.

</MOLOKYLE>

Kommentar
Fra : Xfactor


Dato : 13-08-03 14:08

Hvis du ikke er tilfreds med den løsning kan du jo vælge at bruge en kombination. Hvor du efter hver side på site logger brugeren. Så kan du på den måde følge brugerens gang gennem sitet, og se hvilke sider der bliver set mest osv. Og deraf også se hvilken side brugeren sidst så på, nemlig den med det højeste timestamp.

Mvh Nino

Godkendelse af svar
Fra : leifnel


Dato : 13-08-03 18:04

Tak for svaret molokyle.

Ikke at jeg forstår det helt, eller nødvendigvis vil bruge det, men der er da ihvertfald gjort en belønnelsesværdig indsats

Leif
                        

Kommentar
Fra : molokyle


Dato : 13-08-03 23:07

Takker leifnel.

</MOLOKYLE>

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407859
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste