是否可以检测用户是否已打开新标签?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以检测用户是否已打开新标签?相关的知识,希望对你有一定的参考价值。
我们正在开发一个测验平台,我们希望在测验期间检测用户是否打开新选项卡。不允许用户打开新选项卡,我们希望跟踪此信息以通知管理测验的教师。我们针对主要浏览器(IE,Chrome,Firefox,Safari)。
这可能吗?谢谢
答案
您可以使用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);
另一答案
你不能用javascript做到这一点。它必须通过浏览器的扩展来完成我相信Internet Explorer曾经有一个禁用标签浏览的选项,浏览一下您希望执行此操作的每个浏览器的扩展或查看制作一个。更好的解决方案不是限制您不希望他们查看的网站而不是禁用标签按钮吗?
另一答案
<%@ 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>
以上是关于是否可以检测用户是否已打开新标签?的主要内容,如果未能解决你的问题,请参考以下文章