如何防止用户离开javascript中的当前窗口?

如何防止用户离开javascript中的当前窗口?,javascript,Javascript,我正在开发应用程序,用户必须在线编写认证考试。一旦用户点击开始考试按钮,我就会打开弹出窗口进行考试。但我们不应该允许用户离开这个窗口(防止他通过在另一个窗口中搜索来复制答案)。用户不能像按ALT+TAB(或)WINDOWS+D那样离开活动窗口 基本上,在javascript中,我们需要以所有可能的方式防止用户离开当前窗口。如何做到这一点?防止用户离开您的网站,这是垃圾邮件发送者所需要的。这就是为什么这是不可能的。你唯一能做的就是检查用户是否离开了。这将停止js执行: (见 (适用于原始代码) 哦

我正在开发应用程序,用户必须在线编写认证考试。一旦用户点击开始考试按钮,我就会打开弹出窗口进行考试。但我们不应该允许用户离开这个窗口(防止他通过在另一个窗口中搜索来复制答案)。用户不能像按ALT+TAB(或)WINDOWS+D那样离开活动窗口


基本上,在javascript中,我们需要以所有可能的方式防止用户离开当前窗口。如何做到这一点?

防止用户离开您的网站,这是垃圾邮件发送者所需要的。这就是为什么这是不可能的。你唯一能做的就是检查用户是否离开了。这将停止js执行: (见 (适用于原始代码)


哦,你想让我们写一个病毒…不。这是一项要求。我们希望用户在编写考试时不用谷歌搜索和复制答案。但由于任何病毒也可能会这样做,任何合理的浏览器都不会让脚本这样做。您应该搜索本机应用程序和受限制的窗口管理器/信息亭模式(可能有针对Windows和Linux的解决方案)。正如@Martin所说,您最好寻找其他途径,因为我认为这是不可能的,您最好检测焦点是否已从测试窗口移开,并以您喜欢的方式处理该场景。Javascript对桌面没有如此大的控制力,您最好创建一个在其中显示网站的程序。
 var vis = (function(){ var stateKey, eventKey, keys = { hidden: "visibilitychange", webkitHidden: "webkitvisibilitychange", mozHidden: "mozvisibilitychange", msHidden: "msvisibilitychange" }; for (stateKey in keys) { if (stateKey in document) { eventKey = keys[stateKey]; break; } } return function(c) { if (c) document.addEventListener(eventKey, c); return !document[stateKey]; } })();

vis(function(){
if(vis()==false){
alert("You left the site. You try to cheat");
//do sth else
}
});