【发布时间】:2015-06-01 14:55:59
【问题描述】:
我目前正在尝试找出一种策略,在测验期间不允许用户刷新/重新加载页面。我知道完全禁用浏览器中的重新加载功能不是一个好主意,甚至是不可能的,但是有没有其他方法可以阻止用户通过重新加载页面来重新开始考试?
我目前的浏览器窗口不显示后退按钮,并且不允许输入 url。我知道我可以通过右键单击鼠标禁用上下文菜单,但仍然允许使用键盘快捷键重新加载页面。关于我应该如何处理这个问题的任何想法?
编辑
我应该将其更改为意味着我实际上并没有尝试禁用浏览器重新加载功能,而是,如果用户确实尝试重新加载,我想重定向它们以便测试结束或发生其他事件,而不是重新开始测试。
目前,我正在使用 localStorage 变量来指示它是否是重新加载并从那里开始。这是最好的解决方案吗?
谢谢!
【问题讨论】:
-
onbeforeunload是你想要的 -
您是否考虑使用 localStorage 作为测验答案(如果可能)?您可以将答案和进度存储在浏览器上,然后在用户刷新/重新加载网页时从 localStorage 加载。
-
location.replace("nextpage.html")也是一种适用于不确定用户的措施 -
如果用户真的想要完全阻止刷新是不可能的。您想通过防止刷新来防止什么?也就是说,您要避免哪些负面影响?
-
@JonathanM 我试图阻止他们重新加载测试并在中途开始。所以,我想我并不是真的想阻止它们重新加载,而是如果它们这样做了就重定向它们。
标签: javascript jquery html web