如何使用ASP.NET检测页面关闭事件

当我单击MenuItem打开一个新的aspx页面时,我有一个带有MasterPage和内容页面的ASP.NET Web应用程序。 如果我想关闭新的页面浏览器选项卡,我想显示一个弹出窗口或一个对话框,提醒用户他正在关闭浏览器选项卡。 我不知道如何检测关闭browserTab按钮。 我在新的aspx页面中使用了以下代码:

  function CloseWindow() { alert('closing'); window.close(); }  

新页面代码背后:

 protected void Page_Load(object sender, EventArgs e) { Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();"); } 

Thanx在优势。

这很完美。

javascript检测浏览器关闭选项卡/关闭浏览器

  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') ; } } 

我自己遇到了很多问题,唯一有效的是:来自javascripts的“window.onbeforeunload”事件,但问题是这比你期望的要多得多。 所以基本上如果你使用母版页等我不认为可以做到。

我认为你尝试以不同的方式处理这种情况是最好的,因为否则你的结束信息会经常出现。

您可以在页面中使用javascript处理此问题。
首先创建一个函数:

 function closeMessage() { return "Are you sure you want to leave this page"; } 

之后,分配此方法:

 window.onbeforeunload = closeMessage; 

如果有帮助请告诉我

您需要捕获事件以关闭浏览器并使用它来做您想做的任何事情。 这是适合我的代码。

   

希望这可以帮助..

如果我找到你,你想知道什么时候选项卡/窗口有效关闭。 好吧,afaik你在Javascript中唯一的方法来检测那种东西是onunload和onbeforeunload事件。 当您通过链接或浏览器返回按钮离开网站时,也会触发这些事件。 所以这是我能给出的最好的答案,我不认为你可以在Javascript中原生地检测到纯粹的关闭。 如果我在这里错了,请纠正我。你可以通过浏览器选项卡关闭检测 – 使用 -javascript 或任何其他语言