how to detect the Page Close Event with ASP.NET
I have a ASP.NET web app with a MasterPage and contents page, from the MasterPage when I click a MenuItem
to open a new aspx Page. if I want to close the new page browser tab, I want to show a popup or a dialog that alert the user that he is closing the browser tab. I dont know how to detect the close browserTab button. I used the following code in the new aspx page:
<script type="text/javascript">
function CloseWindow() {
alert('closing');
window.close();
}
</script>
new page code behind:
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
Thanx in Advantage.
This works perfect.
javascript detect browser close tab/close browser
<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()">
var myclose = false;
function ConfirmClose()
{
if (event.clientY < 0)
{
event.returnValue = 'You have closed the browser. Do you want to logout from your application?';
setTimeout('myclose=false',10);
myclose=true;
}
}
function HandleOnClose()
{
if (myclose==true)
{
//the url of your logout page which invalidate session on logout
location.replace('/contextpath/j_spring_security_logout') ;
}
}
I had a lot of problems with this myself and the only thing that works is: "window.onbeforeunload" event from javascripts but the problem is this gets executed a lot more than when you'd expect. So basicly if your working with a master page etc I don't think it can be done.
I think it's best you try to approach this differently because else your closing message will show up to often.
You can handle this with javascript in your page.
First create a function:
function closeMessage() {
return "Are you sure you want to leave this page";
}
After that assign this method:
window.onbeforeunload = closeMessage;
Please let me know if was helpfull
链接地址: http://www.djcxy.com/p/71500.html上一篇: 从另一个线程调用一个lua函数(作为回调函数)是否足够安全?
下一篇: 如何使用ASP.NET检测页面关闭事件