8

我有一个带有 MasterPage 和内容页面的 ASP.NET Web 应用程序,当我单击 aMenuItem打开新的 aspx 页面时,来自 MasterPage。如果我想关闭新的页面浏览器选项卡,我想显示一个弹出窗口或对话框,提醒用户他正在关闭浏览器选项卡。我不知道如何检测关闭 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();");
}

感谢优势。

4

5 回答 5

4

这很完美。

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') ;
    }   
}
于 2013-09-10T18:01:01.530 回答
1

我自己对此有很多问题,唯一有效的是:来自 javascripts 的“window.onbeforeunload”事件,但问题是执行的次数比您预期的要多得多。因此,基本上,如果您使用母版页等,我认为这是无法完成的。

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

于 2013-11-11T10:23:47.797 回答
0

如果我理解正确,您想知道选项卡/窗口何时有效关闭。好吧,afaik 你在 Javascript 中检测这类东西的唯一方法是 onunload 和 onbeforeunload 事件。当您通过链接或浏览器返回按钮离开站点时,也会触发这些事件。所以这是我能给出的最好答案,我认为你不能在Javascript中检测到纯关闭。如果我在这里错了,请纠正我。您可以通过browser-tab-close-detection-using-javascript-or-any-other-language

于 2013-07-11T10:59:47.267 回答
0

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

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

之后分配此方法:

window.onbeforeunload = closeMessage;

请让我知道是否有帮助

于 2013-05-16T18:08:39.453 回答
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>

希望这可以帮助..

于 2013-05-17T11:28:18.860 回答