• (转)js控制窗口失去焦点(包括屏蔽Alt+Tab键切换页面)


    本章内容转自:http://www.cnblogs.com/BoKeYuanVinson/articles/3360954.html 

    转载自网络贴吧:

    页面脚本是无法截获alt键的,不过可以变通一下,我想你是希望学生不要切换出当前浏览器窗口,要达到这个目的可以不必截获alt+tab,而改用window.onblur(),这个事件在当前页面失去焦点时触发,这样以来,我们就可以在考试开始之前声明:"如果做窗口切换,将导致系统立刻交卷,而不管你是否已经完成",然后,在页面的头部写上类似下面的代码:
    ---------------------------------------------------------
    <HEAD>
    <TITLE> Exam </TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">

    <SCRIPT LANGUAGE="JavaScript">
    function auto_submit (){
    alert("你试图离开当前窗口,系统将自动提交试卷!");
    //自动提交的代码, 例如: form1.submit();
    }

    window.onblur=auto_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 document.body.onkeydown()
    {
    var a = event.altKey;
    var l = event.keyCode==?? <!--此处是Tab键KeyCode-->
    var q = a&&l;
    return !q;
    }
    </script>

  • 相关阅读:
    深入理解JVM
    Axure RP 7.0 注册码
    jquery 单击和双击事件冲突解决方案
    8张图理解Java
    java集合运算:求交集,并集,集合差
    Java高级软件工程师面试题
    初学者手册-IDEA常用快捷键
    Java开发进阶技能(附文章引用链接)
    项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
    org/apache/hadoop/hbase/mapreduce/TableReducer:Unsupported major.minor version52.0
  • 原文地址:https://www.cnblogs.com/laobiao/p/6962317.html
Copyright © 2020-2023  润新知