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

问题描述 投票:1回答:3

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

这可能吗?谢谢

javascript browser
3个回答
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);

0
投票

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


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>
© www.soinside.com 2019 - 2024. All rights reserved.