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