Solved

How to detect browser close(x) click in firefox

Posted on 2010-11-17
4
1,749 Views
Last Modified: 2012-05-10
I have an ASP.NET app
I need to detect when the user clicked the close(x) on the far top right.
I have an onbeforeunload event that triggers the code below. and have the following two questions

A)
This works for IE, Does Firefox recognize the following check, if not what is the equivalent
if ((window.event.clientX < 0) || (window.event.clientY < 0))

B)
Also what is the equivalent XMLHttpRequest object for Firefox

The firefox version I am testing with is
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)
<script type="text/javascript" language="javascript">

    function logUser() {

        if ((window.event.clientX < 0) || (window.event.clientY < 0)) {

      

             logoutXMLHTTP()

         }



     }

     function logoutXMLHTTP() {

         var xmlHttp;

         try {

             // Firefox, Opera 8.0+, Safari

             xmlHttp = new XMLHttpRequest();

             xmlhttp.open("GET", "AbandonSession.aspx", false); 

             xmlhttp.send();

         }

         catch (e) {

             // Internet Explorer

         try {

               xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

               xmlhttp.open("GET", "AbandonSession.aspx", false); 

               xmlhttp.send();

             }

         catch (e) {

             try {                                 

               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

               xmlhttp.open("GET", "AbandonSession.aspx", false);

               xmlhttp.send();

                 }

                 catch (e) {

                     alert("Your browser does not support AJAX!"); return false;

                 }

             }

         }

     }





</script>

Open in new window

0
Comment
Question by:countrymeister
  • 2
4 Comments
 
LVL 7

Expert Comment

by:deadlyDev
ID: 34154725
I know its not exactly an answer to your question... but check out http://jquery.com/ This library lets you write javascript code once (Not changing per browser) and takes care of the differences between browsers for you... Specifically check out the .ajax() method, which will use the XMLHttpRequest object from each of the browsers seamlessly... This framework changed my life!

When it comes to your problem code, you will need only write the code once, and it will work on all [supported] browsers!
0
 
LVL 6

Expert Comment

by:Codebot
ID: 34163197
If you are using asp.net then use server side session start and session end
they are more reliable
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/applications/state.aspx
or check this one
http://www.dotnetcurry.com/ShowArticle.aspx?ID=126&AspxAutoDetectCookieSupport=1
0
 
LVL 1

Author Comment

by:countrymeister
ID: 34163357
Codebot,

Please note closing the browser is a pure client side event, and not a server side event.
I  need to know if what is the equivalent of window.event.clickX in firefox and the XmlHttp request object for Firefox
0
 
LVL 6

Accepted Solution

by:
Codebot earned 500 total points
ID: 34163444
yes use
var e = (window.event) ? window.event : evt;

if (e.clientX < 0 && e.clientY < 0){
{

alert("window closing....");

}

Open in new window

and for object use
unction GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Problem to page 4 71
How to specify a browser 14 53
Allow space in this pattern 2 47
ADO.NET ENTITY DATA MODEL 3 30
jQuery is a JavaScript library that greatly simplifies JavaScript programming. AJAX is an acronym formed from "Asynchronous JavaScript and XML."  AJAX refers to any communication between client and server, when the human client does not observe a…
Citrix XenApp, Internet Explorer 11 set to Enterprise Mode and using central hosted sites.xml file.
Google currently has a new report that is in beta and coming soon to Webmaster Tool accounts. This Micro Tutorial will highlight new features for Google Webmaster Tools.
This Micro Tutorial will demonstrate how to add subdomains to your content reports. This can be very importing in having a site with multiple subdomains.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now