send a request before close window

I need to send a string to the server for verify the user logout while the user close the "browser window" in NS4+ or IE4+ (when they click the cross, not the button in the webpage).

here is my code:

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


<script language=Javascript>
function logout() {

var temp = new String("/servlet/MServlet?FID=808&pageid=5&SID=");
temp = temp + "<%= sc.getSessionID() %>" + "&LANGID=" + "<%= sc.getLanguageID() %>" + "&SEQID=" + "<%= sc.getSequenceID() %>";

if (confirm("Are you sure to logout ?")) {
      document.location.href = temp;
}
}

</script>

</head>

<body onUnload="return logout(this)">

asdffsadf

</body>
</html>

It works in IE4+ but not NS4+, I know it's hard to do it in NS4+. is there any way I can send the request logout string to the server when the user click the NS browser while close the window?
Any solution or answer I would appreciate.

thanks! :)

rider
StoRmRiD3rAsked:
Who is Participating?
 
Michel PlungjanConnect With a Mentor IT ExpertCommented:
It is not possible to detect the click on the cross unless you have your session open in a new window without location bar.

If so and assuming there are no links leading away from the page, try this:

Write a cookie with the userid and stuff.
Then use

<body onUnload="window.open('http://www.yourserver.com/servlet/MServlet?FID=808&pageid=5&SID=<%= sc.getSessionID() %>&LANGID=<%= sc.getLanguageID() %>&SEQID=<%= sc.getSequenceID() %>','newwin')">

and return a script with a <body onLoad="self.close()">

It is a good idea to have the url fully qualified since older Netscape 4s forget where they came from...

If you have links on the page leading to other pages where you need to stay logged on, you need more tests

Michel
0
 
CJ_SCommented:
Well, the main problem here is that you can't prevent the user from logging out. At least not in the onunload event. The program will always be shut down no matter what...IE has an exception there.
The best thing you could possible do is to have a seperate button which will handle this close event.
I don't know for what kind of page it is, if it is for the intranet this'd be the best solution. For the internet you might want to wait for another answer from (probably mplungjan) another expert here.

0
 
CJ_SCommented:
Or when the user doesn't want to log out that you open a new window with the same URL???
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
Michel PlungjanIT ExpertCommented:
Sorry, forget the cookie if you send the complete url only if you do not want to have a long url write a cookie and use
<body onUnload="window.open('http://www.yourserver.com/servlet/MServlet','newwin')">

and have the servlet read the cookie


Michel
0
 
StoRmRiD3rAuthor Commented:
really thank you for your advices, CJ_S & Michel.

Michel,
the body onUnload then window.open is working on NS4+ & IE4+. thanks for your help.

CJ_S, I would give 20 pts for your comment. i will add a new question, the title is : "PTS for CJ_S".

thanks again, Expert. :)
0
 
StoRmRiD3rAuthor Commented:
Excellent! Expert. :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.