0

我有一个用于数据输入的 asp.net 页面,当用户从页面移出而不执行保存过程时,我想向用户显示一条通知消息。如何在客户端实现此功能?

编辑 :

我不想在用户打开数据输入页面并离开时显示消息,如果用户添加或编辑了任何字段的数据,则只需要显示消息。

感谢你的帮助。

4

3 回答 3

0

除了我的其他答案,您可以使用 JavaScript 来调用事件:

<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()">

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

感谢如何使用 ASP.NET 检测页面关闭事件-> 可能想要阅读它,因为它还有其他建议/提示和技巧。

于 2014-08-26T14:29:22.500 回答
0

当用户离开页面时,会自动调用 OnUnload 事件。

请参见此处:asp.net 中的页面卸载事件

类似的东西

protected override void OnUnload(EventArgs e)
{
    base.OnUnload(e);
    if(!userSaved) { //e.g. user has not saved
        //display error
    }
}
于 2014-08-26T14:18:30.203 回答
0

对于客户端解决方案,您可以使用document.onbeforeunload此处记录的:https ://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload

另一个页面有一个示例代码

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage;     //Gecko + IE
  return confirmationMessage;                                //Webkit, Safari, Chrome etc.
});

当然,您可能希望在提醒用户之前跟踪是否有真正的变化。

于 2014-08-26T14:25:02.227 回答