如何限制用户在没有特定操作的情况下离开页面(例如,单击提交按钮)

时间:2013-09-06 10:03:48

标签: php javascript jquery ajax

我正在创建一个在线测验应用程序。

  • 测验有一个计时器,当用户开始测验时,计时器将开始倒计时。
  • 用户可以在完成测验时提交答案。
  • 如果他没时间,答案会自动提交。

现在我需要的是

  • 当用户开始测验时,我需要限制他打开其他标签或窗口(以避免使用谷歌或其他任何可以搜索答案的来源)。即,限制他最小化测验窗口或打开任何新的标签/窗口/应用程序

  • 如果他碰巧离开测验窗口(意味着他打开了一个新窗口或其他东西),答案应该自动提交,并且下次他回到测验页面时应显示结果页面。

我假设这个问题不需要我使用的代码,因为问题是一般的。如果代码实际上是需要的,我很抱歉,请告诉我,我会在这里发布。如果这是一个重复的问题,我很抱歉。我尝试过搜索,但我真的不知道应该寻找哪些关键字。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery http://jquery.com/

$(window).blur(function(){
  //your code here
});
$(window).focus(function(){
  //your code
});

答案 1 :(得分:1)

没有100%肯定的方法,因为Javascript可以被取消激活。

但是,有一个解决方案可以检查窗口是否有焦点:JavaScript / jQuery: Test if window has focus

当页面失去焦点时,您可以打开一个确认框离开测验,或者您需要的任何逻辑。