PopUp Window的地址栏

时间:2013-10-24 08:34:43

标签: javascript asp.net

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

2 个答案:

答案 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,那么您就不是完全安全了。