如何在参加在线考试时完全禁用浏览器的后退按钮?

时间:2014-01-03 05:06:19

标签: javascript php jquery html

在网上考试中,一旦候选人点击了开始按钮,我不想让他回去(到以前的页面),如果他使用浏览器属性做任何活动,他应该在同一页面。一旦他点击提交他正从那个页面走出来。

如果我清除缓存并按下浏览器后退按钮,页面显示为“文档已过期所请求的文档在Firefox缓存中不可用。”因此我不想清除cach insted我需要竞争性地禁用后退按钮,即单击后退按钮不会发生任何事情。

如果有人知道让我知道如何实现这个概念......

5 个答案:

答案 0 :(得分:8)

试试这个脚本

<script>
window.location.hash="no-back-button";
window.location.hash="Again-No-back-button";//again because google chrome don't insert first hash into history
window.onhashchange=function(){window.location.hash="no-back-button";}
</script> 

另请参阅此link。此 link 包含演示&amp;下载代码

答案 1 :(得分:3)

虽然您可以阻止后退按钮,但您无法阻止用户在参加考试时禁用JS。这使得JS方法实际上毫无用处。

假设以前的页面是问卷,我建议一旦用户离开页面,对该页面的任何进一步访问都将无效。这可以使用服务器端语言和数据库轻松完成,以跟踪用户访问的页面。

请注意,某些浏览器在执行返回时会在上一页上执行“刷新”,而其他浏览器会从缓存中加载它们。后者将使页面仍然可访问,即使您在服务器上标记它是不可访问的。您可以进一步做的是,一旦被视为无效访问,该页面上的任何操作都将失效。这样,即使用户拥有该页面的副本,他也无法对其进行任何操作。

此外,这是一个考试,JS是一个很难放置一些考试逻辑的地方,因为它很容易被检查和修改。你应该把所有东西都留在服务器上。

答案 2 :(得分:0)

您可以使用replace()

window.location.replace('your url here');

答案 3 :(得分:0)

你实际上无法覆盖浏览器后退按钮的默认行为,这是浏览器中的安全问题。

然而,您可以在某种意义上编码,使您的背部显示为禁用。检查一下我给出的一些回复。 how to stop browser back button using javascript。它仍然适合我(IE-7运气不好)。但是,如果某人在浏览器中禁用了javascript,该怎么办?这将完全失败这种逻辑,这可能是一种罕见的情况。

您可以遵循的另一种做法是在window.open()内打开您的网页链接。但它有自己的优点和缺点。 See Here

答案 4 :(得分:0)

尝试使用功能后的页面以防止卸载表单。

$(window).on('beforeunload', function(){
      return false;
});

或尝试unload功能并防止静默卸载当前页面。