Avatar billede cyberdude Nybegynder
26. september 2001 - 19:23 Der er 7 kommentarer og
2 løsninger

onUnload() ??

Hejsa!!

Jeg har brug for en funktion som KUN aktiveres når og KUN når brugeren forlader mit domæne enten ved at lukke browser vinduet, eller indtaster en ny adresse i adresse-linien

funktionen skal bruges til at logge en bruger ud med såfremt brugeren IKKE har husket at logge ud inden browseren lukkes/skifter adresse

Jeg har prøvet følgende :
---- start -----
<body onUnload=\"logud()\">
<script language=javascript>
<!--- skjul script for ældre browsere

function logud(){

open(\"http://min_side.dk/\", \"PopUp\", \"toolbar=yes,menubar=yes,status=no,directories=no,location=no,scrollbars=yes,resizable=yes,width=700,height=420,left=30,top=30,screenX=30,screenY=30\"); 
}
// slut på kommentar der skjuler for ældre browsere -->
</script>

--- slut ----

Problemet er bare her at hvis jeg bare klikker på et menupunkt som føre brugeren til en underside på mit domæne ja så åbner ovenstående \"popup\" også :-((

Det må da kunne lade sig gøre........ ?
Avatar billede mipe1 Nybegynder
26. september 2001 - 19:31 #1
Smid det hele ind i en frame og load dine undersider heri, så er det først når hovedframen unloades at popup vinduet aktiveres
Avatar billede cyberdude Nybegynder
26. september 2001 - 20:41 #2
hmm det må da kunne gøres på en anden måde så man undgår at skulle lave frames...........
Avatar billede Slettet bruger
26. september 2001 - 21:00 #3
Du kan da bare bruge tidsindstillede sessions i fx PHP eller ASP... Det er da meget nemmere!?
Nå, men for at vende tilbage til dit problem, så har dette spm været stillet mindst (lad mig se) 453.934.033 gange - sådan cirka - her på Eksperten, og svaret har hver gang været: 8 flasker kokossaft... Og dog? Nej, det må da vist være forkert! (?) ... :-)

Det nemmeste er en frame, som mipe1 siger, men det kan også gøres på adskillige mere eller mindre brugervenlige måder, for eksempelvisus:

Læg dette script ind i <head>:
<script>
intern = false;
tjekUnload() {
if (!intern) {
doStuff() //Her skal kommandoerne, der skal udføres, når brugeren forlader domænet, skrives!
}
}
</script>

Så er du nødt til ved HVERT link (sorry), der skal pege til et internt site at skrive:
<a href=\"java script:intern = true; self.location = \'blablabla.html\';\">Dit link</a>

Og i <body>:
<body onUnload=\"tjekUnload()\">
Avatar billede Slettet bruger
26. september 2001 - 21:02 #4
Den kan (s\'føli\') også vendes om, til dette script:

<script>
intern = true;
tjekUnload() {
if (!intern) {
doStuff() //Her skal kommandoerne, der skal udføres, når brugeren forlader domænet, skrives!
}
}
</script>

Og så skal hvert internt link være et helt normalt <a href=\"blablabla.html\">Link</a>, mens alle de links, der skal pege væk fra dit domæne skal kaldes således:
<a href=\"java script:intern = false; self.location = \'http://www.eksternt-site.dk\';\">Ekstern</a>
Avatar billede Slettet bruger
26. september 2001 - 21:06 #5
Furthermore kan scriptet gøres nemmere således:

<script>
gaa(urlen) {
doStuff() //Her skal kommandoerne, der skal udføres, når brugeren forlader domænet, skrives!

self.location.href = urlen
}
</script>

Så skal alle eksterne links skrives:
<a href=\"java script:gaa(\'http://www.ekstern.dk\');\">Eksternt link</a>
Avatar billede cyberdude Nybegynder
26. september 2001 - 21:26 #6
phoenixv -> hvordan gør man det der med \"tidsindstillede sessions i fx PHP\" ???

Jeg laver nemlig sitet i php, og har lidet bøvl med det her java haløjsa.......
Avatar billede nikolajdu Nybegynder
26. september 2001 - 22:28 #7
Cyberdude prøv om ikke det her virker efter hensigten:

<html>
<head>
    <title>Untitled</title>

<script>   
    function logud(url, maa_jeg){

    if(maa_jeg){
    open(url, \"PopUp\", \"toolbar=yes,menubar=yes,status=no,directories=no,location=no,scrollbars=yes,resizable=yes,width=700,height=420,left=30,top=30,screenX=30,screenY=30\"); 
}else{
alert(\'Nix makker\')
    }
}

</script>
   
</head>

<body onUnload=\"logud(\'http://www.eksperten.dk\', true)\">

<a href=\"#\" onClick=\"logud(\'http://www.nikolajdu.dk\'), false\">klik</a>

</body>
</html>
Avatar billede cyberdude Nybegynder
26. september 2001 - 23:10 #8
har valgt at gøre det sådant her (fandt det ved at studere et site som brugte det jeg søgte!)

<script language=\"Javascript\">

<!-- //
flag = 1;
function LogUd() {
if (flag==1) {
        open(\"http://mit_site.dk/fil.php\", \"PopUp\", \"toolbar=yes,menubar=yes,status=no,directories=no,location=no,scrollbars=yes,resizable=yes,width=640,height=310,left=30,top=30,screenX=30,screenY=30\"); 
        }
}
// -->

</script>

<body onUnload=\"LogUd()\">

og så på ALLE de link der bruges på dit site ........
<a href=\"dinfil.php\" onClick=\"flag=0\">link</a>

hvilket jo nu nok svare rimeligt til det i også har angivet som mulig løsning!
så i deler pointene!!
Avatar billede nikolajdu Nybegynder
26. september 2001 - 23:13 #9
Ja, idéen er fuldstændigt det samme.
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