是否可以检测用户是否已打开新标签?

时间:2014-08-05 16:18:38

标签: javascript browser

我们正在开发一个测验平台,我们希望在测验期间检测用户是否打开新标签页。不允许用户打开新选项卡,我们希望跟踪此信息以通知管理测验的教师。我们的目标主要是浏览器(IE,Chrome,Firefox,Safari)。

这可能吗?谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用onblur对象的window事件并写下这样的内容:

function userCheated() {
    // The user cheated by leaving this window (e.g opening another window)
    // Do something
    alert("You can't cheat!");
}

window.onblur = userCheated;

注意:因为当用户离开你的窗口你没有对窗口的控制时,由于执行缓慢,userCheated功能可能会在用户执行时执行回到你的窗口,所以有时用户回来时会出现警报。我认为它也可以正常工作。

浏览器支持:,因为某些浏览器可能无法执行此操作,我建议您使用jQuery插件使更多浏览器可用,因为jQuery API有很多兼容性调整。

使用jQuery代码将是:

$(window).onblur(userCheated);

答案 1 :(得分:0)

您无法使用javascript执行此操作。它必须通过浏览器的扩展来完成我相信Internet Explorer曾经有一个禁用标签浏览的选项,浏览一下您希望执行此操作的每个浏览器的扩展或查看制作一个。更好的解决方案不是限制您不希望他们查看的网站而不是禁用标签按钮吗?

答案 2 :(得分:0)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
function userCheated() {
    // The user cheated by leaving this window (e.g opening another window)
    // Do something
    alert("New Tab Opened");
}

window.onblur = userCheated;

</script>`enter code here`
</head>`enter code here`
<body>
window.onblur = userCheated;
</body>
</html>