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

时间:2013-05-16 10:11:25

标签: c# javascript asp.net clientscript

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

<script type="text/javascript">
    function CloseWindow() {
        alert('closing');
        window.close();
    }
</script>

背后的新页面代码:

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

Thanx in Advantage。

5 个答案:

答案 0 :(得分:3)

这很有效。

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

答案 1 :(得分:1)

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

我认为你最好尝试以不同的方式解决这个问题,因为否则你的结束信息会经常出现。

答案 2 :(得分:0)

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

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

之后分配此方法:

window.onbeforeunload = closeMessage;

如果有帮助请告诉我

答案 3 :(得分:0)

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

        <script type="text/javascript">
          window.onbeforeunload = function (e) {
               var e = e || window.event;
               if (e) e.returnValue = 'Browser is being closed, is it okay?';//for IE & Firefox
               return 'Browser is being closed, is it okay?';// for Safari and Chrome
           };
        </script>

希望这会有所帮助..

答案 4 :(得分:0)

如果我找到你,你想知道什么时候有效关闭标签/窗口。好吧,afaik你在Javascript中的唯一方法来检测那种东西是onunload&amp; onbeforeunload事件。 当您通过链接或浏览器返回按钮离开网站时,也会触发这些事件。所以这是我能给出的最好的答案,我不认为你可以在Javascript中原生地检测到纯粹的关闭。如果我在这里错了,请纠正我。你可以通过browser-tab-close-detection-using-javascript-or-any-other-language