如何检测与ASP.NET页面关闭事件(how to detect the Page Close Ev

2019-09-03 15:31发布

我有一个母版页和内容页一个ASP.NET Web应用程序中,从母版,当我点击MenuItem ,打开一个新的aspx页面。 如果我要关闭新的页面浏览器选项卡,我想说明一个弹出或者提醒他关闭浏览器选项卡用户的对话框。 我不知道如何检测关闭,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();");
}

感谢名单中的优势。

Answer 1:

这完美的作品。

JavaScript的浏览器检测关闭标签页/关闭浏览器

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


Answer 2:

我有很多与这个自己和作品是唯一的问题:从Java脚本“window.onbeforeunload”事件,但问题是这得到比你所期待执行了很多。 因此basicly如果与母版页等你的工作,我不认为这是可以做到。

我认为这是最好的,你尝试不同的方法处理这一点,因为否则你收消息将出现经常。



Answer 3:

你可以在你的页面的JavaScript处理这个问题。
首先创建一个函数:

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

之后分配此方法:

window.onbeforeunload = closeMessage;

请让我知道,如果是有帮助



Answer 4:

你需要赶上事件关闭浏览器,并用它做任何你想做的事。 这里是为我工作的代码。

        <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>

希望这可以帮助..



Answer 5:

如果我让你正确的,你想知道什么时候是有效地关闭了一个标签/窗口。 好了,据我所知你在Javascript中唯一的方法来检测这种东西是onunload的&onbeforeunload事件。 当你离开一个网站上的链接或您的浏览器备份按钮,这些事件也被解雇。 因此,这是最好的答案我可以给,我不认为你可以本地检测在Javascript纯密切。 纠正我,如果我错了here.you可以顺利通过浏览器选项卡密检测使用的JavaScript或-任何-其他语言



文章来源: how to detect the Page Close Event with ASP.NET