繁体   English   中英

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

[英]How to display alert and confirmation if back browser button has been clicked

我正在创建一个主要使用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页面。

非常感谢你

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM