How to detect browser close

  • Thread starter Thread starter Lord2702
  • Start date Start date
L

Lord2702

Sat. Oct. 30, 2004 3:25 PM PT

I want to detect, if user has close the browser, (after logging to my site),
that user has closed the browser. How to achieve it ? I want to know this
close action on my server-side code. Because if he logout by clicking on
Logout/ Sign-Off button it simple to get the message.

Although, this is very similar to the first above. Also, if user takes any
action on client-side or browser side how will I detect or send a message to
server-side that user has taken xyzAction ?

Thanks in Advance.
 
Point is that there is no 100% way to guarantee that. You can try having js
scripts to send something to the server when browser gets closed or
something else happens, but if user has disabled js, you are out of luck.
You should design the app such that occasions like this are taken into
account, you just can't help it.
 
You should only respond on the session timing out, or the button being
clicked - other than that assume that your client is still connected.

--
Regards

John Timney
Microsoft Regional Director
Microsoft MVP
 
Hi,

As others have said this is a tricky issue. The odds of you getting a
succesful postback are 50/50 to say the best. I've had about a 95% success
rate doing this:

1. Capture the onbeforeunload event in your body tag.
2. Incorporate the WebService.htc.
3. When the onbeforeunload event fires run a function that uses the
WebService.htc to tell a web service.

The browser will close before you get a response back but, about 95% of the
time, your web service will get hit and the user can successfully be logged
out. Note, that using the latest IE and Windows XP you will achieve almost
100% results. This is sort of complicated until you get the hang of it. If
this isn't something you want to try then here is another suggestion to
improve your chances but it might seem clunky to the user:

Have a main page that the user browses to. To run your app, they click a
button or link and then you use window.open() to create a new browser
window. This is the window your app runs from. Don't ask me why, but the
success rate of a postback from onbeforeunload seems to be much higher for
browsers launched from javascript than from browsers launched by the user.
Good luck! Ken.
 
Back
Top