0

我正在进行在线考试。考试本身在一个弹出窗口中(以避免打开新标签进行研究)。问题出在弹出窗口中。当我重新加载(突出显示地址栏中的地址并按回车键)时,我的计时器重置并且其他数据会改变。有没有办法避免重新加载弹出窗口?

4

2 回答 2

0

作为@Murali的回答,我建议:

window.onbeforeunload = function () { 
return confirm('Do you really whant to add +1 to you reset counter and -1 to your final exam evaluation?' };

然后,如果您使用的是 php(任何其他服务器语言仍然适用):

<?php
// in your popup page //
session_start();
if(!isset($_SESSION["load_count"])){
    $_SESSION["load_count"]=0;
} else {
    $_SESSION["load_count"]+=1;
}
?>

...

在 html 部分

<?php echo "you currently reloaded the page ".$_SESSION["load_count"]." times"; ?>

它不会阻止它们刷新,但总比没有好。

你也可以试试:

window.onbeforeunload = function () { return false; };

但请记住,如果学生是普通人,他们可以使用浏览器控制台并自行终止任何 javascript。

出于这个原因,如果你的计时器逻辑是在 javascript 中的,那么你就不是完全安全的。

于 2013-10-24T09:56:43.530 回答
0

您可以要求用户确认重新加载使用onbeforeunload event。但我不认为你可以阻止浏览器内置功能

尝试

  window.onbeforeunload = function () { return confirm('Are you sure?' };
于 2013-10-24T08:37:49.800 回答