Avatar billede badal Nybegynder
13. januar 2012 - 12:54 Der er 14 kommentarer

Lukke vindue

Jeg vil gerne fange det event, hvis brugeren har trykket på krydset for at lukke vinduet.

Budre det ikke bare være det: window.onbeforeunload ??

Problemet er at den reagere også hvis brugeren trykker på et link for at komme til anden siden. Jeg ønsker kun at fange event hvis brugeren er ved at lukke vinduet.
Avatar billede claes57 Ekspert
13. januar 2012 - 13:17 #1
se #2 på http://www.xtremedotnettalk.com/showthread.php?t=77219
hvis cursor er over [X] når siden forlades, så er det 'luk' - ellers anden vej ud/videre.
Avatar billede badal Nybegynder
13. januar 2012 - 13:28 #2
Jeg har prøved med nedenstående kode og den reagere slet ikke på at der er trykket på kryds:


<HTML>
<head>
<script>

function handleWindowClose()
{

  var iX = window.document.body.offsetWidth - window.event.clientX ;
  alert(ix);
  var iY = window.event.clientY ;
  alert("ix: "+ ix + ", iy:"+ iy)
  if (iX <=30 && iY < 0 )
  {
  // this means the user clicked the X button, do whatever you want to do here
  alert('test');
  }
}


</script>
</head>
<body onbeforeunload='handleWindowClose();'>
  <a href="http://www.microsoft.com">Click here to navigate to
      www.microsoft.com</a>
</body>
</html>
Avatar billede badal Nybegynder
13. januar 2012 - 13:56 #3
Har fundet ud af at problemet ligger i Firefox, der ikke kan lide den her: window.event.clientX ;
Avatar billede claes57 Ekspert
13. januar 2012 - 13:58 #4
koden var fra 2003 - så det kan være, at den kun virker i ie6 og tidligere... Jeg ved ikke, hvordan det ellers skulle laves.
Avatar billede olebole Juniormester
13. januar 2012 - 14:17 #5
<ole>

Også i 2003 var JavaScript case sensitive, så dengang virkede scriptet såmænd heller ikke. Problemet er nemlig ikke kun aftastningen af event'en - men (b.la.) også at variablerne iX og iY i flæng skrives med stort og småt X og Y  =)

@badal: Du har ikke umiddelbart mulighed for at gøre det, du gerne vil. Du kan muligvis kode dig ud af tingene, men at anvise en løsning kræver, man helt nøjagtigt kender omstændighederne omkring, hvordan det skal bruges.

/mvh
</bole>
Avatar billede badal Nybegynder
13. januar 2012 - 14:34 #6
Hej Ole

Jeg har måske kommet med en løsning, istedet for at beskrive hvad det er jeg vil opnå. Måske kan man gøre det helt anderledes.

Jeg ønsker at session skal ende lige så snart at browseren lukker ned. Brugeren skal logge ind igen. Det har jeg set på andre sider at det er gjort.

Er der andre måder man kan lukke for sessionen når browseren lukkes?
Avatar billede olebole Juniormester
13. januar 2012 - 14:41 #7
En session er knyttet til en browserinstans, så det kan jeg ikke se, skulle være noget problem. Hvilket serversprog skriver du?
Avatar billede badal Nybegynder
13. januar 2012 - 14:48 #8
Jeg benytter c# .NET. Hvis bare at session dør, hvis brugeren lukker  browser vinduet vil det være helt fint med mig.
Avatar billede badal Nybegynder
16. januar 2012 - 12:18 #9
Ingen andre bud?
Avatar billede olebole Juniormester
16. januar 2012 - 14:38 #10
Der er ikke rigtig nogen løsning i alm. frontend kode
Avatar billede badal Nybegynder
18. januar 2012 - 15:41 #11
Men er der en løsning i backend koden. Her tænker jeg på i C#? Hvis der er vil sådan en løsning også kunne bruges.
Avatar billede olebole Juniormester
18. januar 2012 - 16:04 #12
Nej, det er heller ikke en mulighed i C# - men i asp.net  *o)

Det er framework'et, der kan ... ikke sproget C#. PHP er ikke et framework, men et sprog - og det kan heller ikke
Avatar billede badal Nybegynder
18. januar 2012 - 16:32 #13
Men er der så noget i .net (asp.net) frameworket, derkan klare det?
Avatar billede olebole Juniormester
18. januar 2012 - 16:40 #14
Måske. Det ved de nok i kategorien  =)
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