Javascript 停止用户使用';X';浏览器按钮

Javascript 停止用户使用';X';浏览器按钮,javascript,php,browser,Javascript,Php,Browser,我有一个测验网站,用户可以出现在那里进行测验。它具有超时功能,如果时间超过30分钟,自动提交测验。现在,尝试测验的用户试图在超时时停止页面处理,并通过单击浏览器中的X按钮停止页面加载。如何防止这种情况。我看到了禁用刷新按钮的结果,但这不是我的情况。当自动提交完成并处理结果时,用户正在停止页面加载。我能对此有一些见解吗 $pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_

我有一个测验网站,用户可以出现在那里进行测验。它具有超时功能,如果时间超过30分钟,自动提交测验。现在,尝试测验的用户试图在超时时停止页面处理,并通过单击浏览器中的
X
按钮停止页面加载。如何防止这种情况。我看到了禁用
刷新
按钮的结果,但这不是我的情况。当自动提交完成并处理结果时,用户正在停止页面加载。我能对此有一些见解吗

$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'; 
if($pageWasRefreshed ) {
  echo "<script>window.location.href='dashboard.php'</script>";die;
}
$PageWasRefresh=isset($_服务器['HTTP_缓存控制'])和&$_服务器['HTTP_缓存控制']=='max age=0';
如果($PageWasRefresh){
echo“window.location.href='dashboard.php'”;die;
}

上面发送的代码没有用处。

只是一个建议-为什么不在超时时使用警报,通知用户您正在做什么,他们可以等待吗?然后,至少他们必须在继续之前关闭该窗口

setTimeout(function(){ alert(" Your quiz is currently being auto-saved, please do not close your window."); }, 18000000);
只需满足您自己的超时要求。


<script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        confirm( "You have attempted to leave this page. Are you sure?" );
    }
</script>
window.onbeforeunload=确认退出; 函数confirmExit(){ 确认(“您试图离开此页面。是否确定?”); }

您可以使用onbeforeunload

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

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


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

您不能停止浏览器的基本功能,如刷新或停止页面加载。你需要做的是设计一个不管用户在客户端做什么都能工作的系统。这主要意味着在服务器上进行大量的状态保持和验证。我当然希望这永远不可能。我担心广告将是无法关闭的弹出窗口您不能阻止用户关闭窗口,但您最多可以使用onbeforeunload事件发出警告您可以使用
onbeforeunload添加一个
确认弹出窗口
,但您不能限制用户关闭浏览器窗口。因此,从概念上讲,您认为如何在页面中向浏览器发送阻止浏览器取消加载页面的内容?比如……如果我在被装载的东西中间取消了……怎么办?不,你找错人了。我应该把代码放在哪一页上。实际上,我用于显示测验和处理测验的页面是不同的
quick.php
processquick.php
是两个页面。显示页面。这就是你想要保护的,对吗?看,显示页面会在时间推移后自动提交。因此,当将值从quick.php发布到processquick.php时,用户正在中断。您需要在要保护的页面上显示该代码。如果必要的话,两个都可以