如果单击后退浏览器按钮,如何显示警报和确认

时间:2012-12-12 17:11:23

标签: php jquery ajax browser

我正在创建一个主要使用php和jquery的考试应用程序。目前,应用程序具有这些页面,以便用户创建考试:

  • Create.php (教师会创建考试详情,例如日期,时间,持续时间, 主题,问题数量,总分等)
  • QandA.php (老师为考试创建问题和答案)
  • Marks.php (教师为每个问题设置每个正确答案的标记)
  • Penalty.php (老师选择他们的考试是否会包含罚分)
  • Finish.php (只是表明您的考试成绩已经完成)

现在应用程序工作正常,但有一些我已经意识到。由于此应用程序在浏览器上运行,因此用户可以随时单击“浏览器”后退按钮。这将导致很大的问题,因为如果我在完成考试创建的一半但点击浏览器后退按钮,那么我将失去我的考试创建进度或更糟,我能够再次执行其中一个页面。这可能意味着存储详细信息的数据库将包含半完整的考试或考试,其中可能包含超出要求的更多信息。

所以这就是我在想的事情,但我不知道首先是否有可能,以及最好是这样做:

  • 如果用户在上面的4个页面中的任何一个页面上点击后面的浏览器按钮(finish.php除外),则会出现一个确认框,指出“如果你回到上一页,那么你将失去所有当前的进度并发送到菜单页面(menu.php)

  • 如果用户点击确认框中的确定,那么它会将用户导航到menu.php页面,它也将通过AJAX导航到另一个php页面(deleteentry.php),它将删除检查详细信息来自数据库)

  • 如果用户点击取消,那么他们可以继续当前页面没问题

  • 如果用户在finish.php页面上点击后退浏览器按钮,则会显示一条警告,指出“您无法返回,您的exax已成功完成,您将被导航回菜单页面“它所要做的就是将用户导航到menu.php页面,就是这样,没有ajax可以调用或任何东西)

我的问题是那个

  1. 上述想法是否是能够解决此问题的合适解决方案

  2. 如何编写代码以确定何时按下后面的浏览器按钮取决于按下的页面并能够执行它能够执​​行的命令?还需要知道如何编写AJAX以导航到后台的deleteentry.php页面。

  3. 非常感谢

1 个答案:

答案 0 :(得分:2)

我将在你的标题中回答这个问题:

  

如果单击后退浏览器按钮,如何显示警告和确认

您无法知道是否单击了“后退”按钮,或者页面是否已刷新或仅更改了页面 - >

onunload事件将处理所有这些情况。