我正在进行在线考试。正确的考试是在弹出窗口中(以避免打开新标签进行研究)。问题出在弹出窗口中。当我重新加载(突出显示地址栏中的地址并按回车键)时,我的计时器将重置,其他数据将会更改。有没有办法避免重新加载弹出窗口?
答案 0 :(得分:0)
您可以要求用户确认使用onbeforeunload event
重新加载。但我不认为你可以阻止浏览器内置功能
试
window.onbeforeunload = function () { return confirm('Are you sure?' };
答案 1 :(得分: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,那么您就不是完全安全了。