如何在在线考试期间限制其他应用程序的使用?

时间:2009-03-10 13:19:45

标签: javascript html

我创建了一个在线考试Web应用程序。我希望用户避免使用浏览器(用于检查Google中的答案)。

我应该如何实现这一目标?我们是否应该使用全屏模式,即使我想限制最小化窗口或使用Ctrl + Tab?

有可能吗?

21 个答案:

答案 0 :(得分:41)

有一个非常简单的解决方案:设置时间限制。任何必须浏览网页以获得答案的学生与那些立即知道答案的学生相比,将会失去很多时间。

另一种解决方案:不在乎。确保学生不了解互联网并不是你的工作。你的工作是确保他们在开始工作时知道自己的东西。因此,如果学生无法记住某些内容,但可以在Google上查找吗?为什么不?我会为她更聪明而不是更努力地奖励她。

答案 1 :(得分:24)

作为浏览器用户,我希望这是不可能的,因为它暗示任何网站都可以做同样的事情,从而违背我的意愿控制我的电脑远离我。

答案 2 :(得分:12)

可能,但只有通过变通办法。

您无法将操作系统和正在运行的应用程序的功能限制为unwind said

但是您可以通过添加Ajax框架来实现限制。您可以将其设置为在考试窗口中焦点丢失时发送答案,从而迫使您的学生诚实。这也有许多缺点,但这是我能想象的一种实现方式。

更新

为了回复评论,我重新思考并改进了这个想法。每当焦点被盗时,必须输入验证码。这样就不鼓励每个问题都改变浏览器窗口,如果偶尔发生这种情况,也不会让人感到沮丧。

答案 3 :(得分:12)

写下问题,以便他们需要原创推理,而不是反驳事实。

答案 4 :(得分:7)

如果测试是在远程位置进行的,则无法按信息方式锁定它们。如果您与参与者在同一个房间,那么您可以使用类似Operas kiosk模式的内容:http://www.opera.com/support/mastering/kiosk/

答案 5 :(得分:6)

我认为真正的网络应用程序不可能。如果用户位于远程位置,他或她可以简单地使用另一台计算机/电话。

答案 6 :(得分:4)

如果我在家里接受测试,就没办法阻止我用两台电脑(Linux机箱,以及用于OSX和XP的双启动Mac Mini)将它带到我的办公桌前,没有你确保锁定一台电脑无所适从。

许多人可以临时或永久访问多台计算机。如果我没有这两台电脑,我可以一起使用我的笔记本电脑和台式机。或者我的iPhone。或者,我可以通过电话与有人知道这个主题或谁将为我搜索网页。

请记住,任何技术锁定都必须​​被视为公平。一个不公平的暗示(例如,当一个不相关的弹出窗口出现时,要求专注于留在测试窗口),学生将更有动力绕过你的控制。

您需要做的是有一些学生将去的地方进行测试。他们可以监督并试图确保没有使用计算机进行外部参考(尽管iPhone不难隐藏)。或者,你不能有任何重大的考验。或者将测试设计为开放资源。

你无能为力。

答案 7 :(得分:2)

唯一可行的方法是设计在线测试,以便参考其他材料很难。这是一个设计问题,而不是技术问题。例如,测试和每个答案的时间限制都很短。我做过很多像这样的测试。在一天结束时,如果他们不在受控制的环境中,他们可以有任何形式的参考书 - 书,朋友等。

答案 8 :(得分:1)

您无法通过HTML或javascript限制浏览器窗口的使用(最小化,浏览其他网站...)。 :(

答案 9 :(得分:1)

使用安全检查浏览器http://safeexambrowser.org/news_en.html。 安全考试浏览器是一个安全地进行在线考试的网络浏览器环境。该软件将任何计算机更改为安全工作站。它规范对系统功能,其他网站和应用程序等资源的访问,并防止在考试期间使用未经授权的资源

答案 10 :(得分:1)

Java基础解决方案......

使用瘦客户机全屏应用程序,并使用Web Start部署html组件。这有两个选项.....

  1. Qt Jambi + WebKit

  2. Swing + xhtmlrenderer

  3. 在Swing / AWT中,您可以检查是否有多个监视器。我相信其他langs / toolkits提供了这个功能.......

答案 11 :(得分:0)

这与pestaa的答案基本相同,只是当焦点丢失时,不是提交答案,而是如何改变问题呢?所以你有100个问题,有40个问题。它一次显示一个,如果窗口失去焦点,当窗口再次聚焦时,问题会从桶中变为新的...

只是一个想法。

答案 12 :(得分:0)

我所知道的唯一方法是:

明确说明事先禁止切换出当前标签/窗口。

如果违反规则,请关闭考试并宣布无效。 (使用JS调整轨道焦点/窗口大小)。

通过JS可靠地阻止当前浏览器窗口之外的任何内容是不可能的。用户可以随时使用自己的JS引擎启动不同的浏览器,并做任何他想做的事情。

答案 13 :(得分:0)

从技术角度来看,这是可能的。您可以使用JavaScript的onblur事件检测焦点丢失的时间。您可以记录窗口焦点丢失的次数,也可以尝试使用JavaScrip focus()方法重新聚焦。

但有几点需要注意......

1)可能会禁用JavaScript。 2)他们仍然可以在另一台设备上检查答案,例如另一台计算机或移动电话 3)他们可以通过非电子方式访问信息。另一个人或一本书。

确保没有外界帮助的唯一方法是在考试条件下设置考试。这意味着要对它进行监督,这会破坏远程性质。

根据此测试的用途,您可以尝试其他完善的技术。如使用远程测试作为入学考试,成功的学生在考试条件下进行第二次考试。

答案 14 :(得分:0)

如果你不和他们在一起,你可能完全没有运气。因为他们可能只有另一台笔记本电脑旁边也有连接到互联网。如果他们在同一个房间,并且你拥有计算机,你可能会做很多事情,例如放入一个只允许访问测试网站的硬件防火墙。

答案 15 :(得分:0)

您可以使用开源gecko浏览器轻松编写.net应用。它有nice .net wrapper你可以自定义(禁用用户浏览等)。然后,很容易阻止用户切换程序。

答案 16 :(得分:0)

你不能用html / javascript做到这一点。

答案 17 :(得分:0)

即使有一种可靠的方法来实现你想要的东西(我非常怀疑),它也非常非常容易规避。用户只需使用第二台计算机(甚至更简单:在虚拟机内启动测试)。

因此,真正的答案是选择一种非技术性的解决方案(例如提出需要理解的问题,而不是轻易地询问谷歌的事实)。

答案 18 :(得分:0)

你不能! Javascript不允许您限制用户的操作。但是你当然可以有一些解决方法,比如检测文档是否失去焦点。

答案 19 :(得分:0)

我还创建了我的学术项目,基于在线考试,然后我使用鼠标和键盘禁用选项,我成功,如果学生打开他们浏览器选项卡,然后他们需要手动键入问题bcoz他们不能复制问题手动写问题他们这样西方时间........所以你也可以使用鼠标和键盘禁用选项........

为此你使用这个编码.........

<script type="text/javascript">
   function disableRightClick(e)

{

  var message = "Right click disabled";



  if(!document.rightClickDisabled) // initialize

  {

    if(document.layers) 

    {

      document.captureEvents(Event.MOUSEDOWN);

      document.onmousedown = disableRightClick;

    }

    else document.oncontextmenu = disableRightClick;

    return document.rightClickDisabled = true;

  }

  if(document.layers || (document.getElementById && !document.all))

  {

    if (e.which==2||e.which==3)

    {

      alert(message);

      return false;

    }

  }

  else

  {

    alert(message);

    return false;

  }

}

disableRightClick();
</script>
<script type='text/javascript'>
  document.onkeydown = function (e) {
    e.preventDefault();
    alert("Not use keyboard")
  }
</script>

答案 20 :(得分:-1)

思考不同。哈克方式。

在开头显示引用在线信息的人将被取消资格。当您的考试网站秘密加载时,在客户端安装数据包嗅探器代码。从考试开始时嗅探包和后退信息。您将在考试期间从该IP获取访问URL。然后,你可以知道谁欺骗了谁,谁不知道!

但是,不要这样做。这违反了用户隐私。你可能会被起诉: - )