(转)js控制窗⼝失去焦点(包括屏蔽Alt+Tab键切换页⾯)
转载⾃⽹络贴吧:
页⾯脚本是⽆法截获alt键的,不过可以变通⼀下,我想你是希望学⽣不要切换出当前浏览器窗⼝,要达到这个⽬的可以不必截获alt+tab,⽽改⽤blur(),这个事件在当前页⾯失去焦点时触发,这样以来,我们就可以在考试开始之前声明:"如果做窗⼝切换,将导致系统⽴刻交卷,⽽不管你是否已经完成",然后,在页⾯的头部写上类似下⾯的代码:
---------------------------------------------------------
<HEAD>
<TITLE> Exam </TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<SCRIPT LANGUAGE="JavaScript">
function auto_submit (){
alert("你试图离开当前窗⼝,系统将⾃动提交试卷!");
//⾃动提交的代码, 例如: form1.submit();
}
</SCRIPT>
</HEAD>
---------------------------------------------------------
这样,只要⽤户操作页⾯外的任何东西(包括当前窗⼝的菜单,地址栏),都会触发onblur事件.
--------
当⽤户按下alt键时,默认会激活浏览器的菜单,这样输⼊焦点已经不在页⾯上了,页⾯内的JS⾃然⽆可奈何,所以,如楼下Jack所说的,即使屏蔽了tab也还是不够,因为alt+tab的组合是先按alt键,这个alt会让我们捕获键盘操作的JS代码完全失效,关于这⼀点,你试试这段代码就知道了:
<BODY onkeypress="alert('press!');return true" onkeydown="alert('down!');return true"></BODY>
你按esc、printscreen或alt,都不会有反应,其他的,包括ctrl在内都可以截获。
另⼀张说法:
你可以这样写:
<body>
<script type="text/javascript">
function keydown()
{
var a = event.altKey;onblur和blur的区别
var l = event.keyCode==?? <!--此处是KeyCode-->
var q = a&&l;
return !q;
}
</script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。