【发布时间】:2010-11-23 17:49:42
【问题描述】:
我试图让用户在尝试离开当前页面时选择留在当前页面上(如果他们没有保存对进度的更改)。我不确定如何解决这个问题,因为我尝试过 JavaScript 并失败了。
我希望在 ASP.NET C# 代码中的 Page_Unload 函数中有一种方法。
任何帮助将不胜感激。
【问题讨论】:
我试图让用户在尝试离开当前页面时选择留在当前页面上(如果他们没有保存对进度的更改)。我不确定如何解决这个问题,因为我尝试过 JavaScript 并失败了。
我希望在 ASP.NET C# 代码中的 Page_Unload 函数中有一种方法。
任何帮助将不胜感激。
【问题讨论】:
请参阅此帖子"Best way to detect when a user leaves a page"。这应该可以帮助你。您必须在客户端执行此操作,就好像他们离开一样,服务器永远不知道。
【讨论】:
您不能依赖服务器端代码来执行此操作。当请求到达服务器时,为时已晚。您需要通过为 beforeunload 事件提供事件处理程序来使用 javascript 执行此操作。请参阅此demo,了解如何操作的简单想法。
【讨论】:
我建议使用 JavaScript。例如,在 SO 上,如果您在进行一些更改后尝试退出页面,系统会提示您。
【讨论】:
您可能希望考虑将 javascript 函数添加到 Body OnUnload event。
【讨论】:
我相信上面的 tvanfosson 显示了最好的方法。你可以注入这个 javascript 服务器端来提供消息、重定向等。
【讨论】:
这是必备的:Asp.NET page life cycle。 始终牢记只有所有服务器端工作完成后,页面才会发送到客户端。
【讨论】: