繁体   English   中英

防止用户在参加测验的应用程序中重新加载/刷新页面的方法

[英]Ways to prevent user from reloading/refreshing page in quiz taking application

我目前正在尝试找出一种策略,不允许用户在测验中刷新/重新加载页面。 我知道完全禁用浏览器中的重新加载功能不是一个好主意,甚至不可能,但是还有其他方法可以阻止用户通过重新加载页面来重新启动考试吗?

我目前在浏览器窗口中未显示“后退”按钮,并且不允许输入URL。 我知道我可以通过右键单击鼠标禁用上下文菜单,但是仍然允许使用键盘快捷方式重新加载页面。 关于如何处理此问题的任何想法?

编辑

我应该将其更改为意味着我实际上并没有尝试禁用浏览器重新加载功能,而是,如果用户确实尝试重新加载浏览器,我希望将它们重定向以便测试结束或发生其他事件,而不是测试重新开始。

当前,我正在使用localStorage变量来指示它是否正在重新加载并从那里开始。 这是最好的解决方案吗?

谢谢!

如果您尝试仅使用客户端技术(javascript)保护Web应用程序,则将面临一场艰苦的,不可战胜的战斗。 总有一些方法可以解决您要采取的措施。

一个可行的解决方案是在每个用户做出决定后在服务器端跟踪测验进度。 这样,如果用户尝试重新加载(或以其他方式重新开始,重新回答或跳过),则只需将它们返回到其所属位置即可。

我可以想到一种检测页面是否刷新的解决方案。

如果您使用的是PHP,则可以在加载时设置SESSION变量,然后检查该变量是否已设置

    <?php
       if(!isset$_SESSION['loaded'])
       {
          $_SESSION['loaded'] = 1;
       }
       else
       {
           echo 'You refreshed, your quiz is over ;-) ';
       }
    ?>

至于禁用刷新,您将不得不依靠恶意软件来实现它,即。 从JavaScript中过滤掉所有键盘输入以“ F5”键或“ Ctrl + R”,并在输入这些快捷方式时忽略键盘输入。 我不确定这是否可行/符合道德规范

暂无
暂无

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

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