2009-02-10 109 views
1

我正在编写一个ASP.NET应用程序,用于跟踪用户的分数和信息(这是一个 培训应用程序)到访问数据库,如果有人直接关闭浏览器,我想显示一条警报消息。 我的问题是,我不能使用卸载事件,因为当我按下任何ASP.NET按钮的时候发生卸载事件。我应该使用什么事件,这将适用于IE和FF? 我想处理事件浏览器关闭(X)。如何知道浏览器何时关闭?

+0

哇 - 很好的清理RichB – annakata 2009-02-10 12:12:38

+0

@annakata:谢谢。似乎这是我所做的一切。人们甚至不尝试似乎。 – GEOCHET 2009-02-10 12:28:27

回答

1

你应该做的是让窗口卸载事件处理程序注销按钮单击事件处理程序调用相同的注销方法。你不需要停止用户,并要求他们按下按钮,你的按钮应该是另一种做同样事情的方式。

另外:你有没有考虑过SCORM

0

不知道你知道你想在这里做什么。 ;-)

是否要防止用户完全关闭浏览器,直到trainig中的某个点?如果是这样,你有没有考虑使用模态和最大化窗口?你应该能够最大化没有标题栏,按钮和菜单的窗口。或者,如果您只想跟踪进度,分数或类似情况,那么您可以使用JavaScript通过浏览器处理的Cookie。请记住,这将使数据保存在学生的一台机器上。

如果你只是想警告他即将离开训练场的用户,可以使用onbeforeunload

0

我想其他人充分回答您的具体问题,但Tooney提出了一些很好的意见。展开这些。你目前在哪里维护你的状态?分数是存储在cookie中,在服务器端会话中还是在数据库中逐页保存。

假设这不是一个便宜和快乐的解决方案,那么我建议你考虑逐页保存结果,因为它可以最大限度地减少因过早退出(无论是设计还是事故)而导致的信息损失。当然,你需要一个过程来清理不完整的训练课程。

您仍然可以使用onbeforeunload函数来捕获用户出口,但个人而言,我不喜欢重复检查用户操作的UI。

祝你好运。