阻止用户使用浏览器的“ X”按钮

时间:2018-08-22 11:13:53

标签: javascript php browser

我有一个出现测验的网站,用户可以在其中出现测验。它具有超时功能,如果时间超过30分钟,则会自动提交测验。现在,尝试测验的用户尝试在发生超时时停止页面处理,并通过单击浏览器中的X按钮来停止页面加载。如何防止这种情况。我已经看到了禁用refresh按钮的结果,但并非如此。自动提交完成且结果正在处理时,用户正在停止页面加载。我可以对此有一些见识吗?

$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'; 
if($pageWasRefreshed ) {
  echo "<script>window.location.href='dashboard.php'</script>";die;
}

以上发送的代码无效。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用Ajax阻止用户停止您的请求。

如果时间超过30分钟,请向“地下”服务器发送请求,提交用户表单。

您可以使用JQuery Ajax或任何其他您喜欢的东西。

答案 1 :(得分:-1)

<script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        confirm( "You have attempted to leave this page. Are you sure?" );
    }
</script>

您可以使用onbeforeunload

答案 2 :(得分:-2)

仅是一个建议-您为什么不在超时时使用警报来通知用户您在做什么,他们可以等一下吗?那么至少他们必须关闭该窗口才能继续。

myfunction <- function(xaxis,yaxis){
  # Specfiy my "y" and "x"
  x <- data$xaxis
  y <- data$yaxis

  f <- function (x,a,b,d) {(a*x^2) + (b*x) + d}
  order_two <- nls(y ~ f(x,a,b,d), start = c(a=1, b=1, d=1)) 
  co2 <- coef(order_two)
  data$order_two_predicted_yaxis <- (co2[1] * (data$x)^2) + (co2[2] * data$x) + co2[3]
}

myfunction(x,v1)
myfunction(x,v2)
myfunction(x,v3)

只需满足自己的超时要求即可。