实现javascript控制键盘同时按某些键时执行操作。

前言:之前知乎上看到过一个介绍国外炫酷网站的,其中一个敏感网站用同时按住"q、a、p、l" 才能观看视频 放手则立即强制停止 (手动斜眼)。这个功能的实际用处,我认为是可以在做一些小系统的权限控制时可以采用,这样就免去做登录和权限相关的功能了。

例子1:同时按住"~、L、J、W、" 时增加权限

1.1 js部分:

 //按键权限验证

    var isCrawler = false;//爬虫权限
    var keybuf = {};
    function keydown(e) {
        var evt = e || window.event;
        keybuf[evt.keyCode] = true;
        whatIsDown();
    }

    function keyup(e) {
        var evt = e || window.event;
        keybuf[evt.keyCode] = false;
        whatIsDown();
    }

    function keypress(e) {
        whatIsDown();
    }

    function whatIsDown() {
        var str = "";

        if (keybuf[74] == true && keybuf[76] == true && keybuf[87] == true && keybuf[192] == true) {
            console.log(‘你开通了权限‘);
            isCrawler = true;//开通权限
        }
        for (k in keybuf) {
            if (keybuf[k] == true) {
                str += k + "; ";

            }
        }
    }

1.2 html部分:

<body  onkeydown="keydown(event);" onkeyup="keyup(event);" onkeypress="keypress(event);">

  

时间: 2024-10-10 09:38:12

实现javascript控制键盘同时按某些键时执行操作。的相关文章

MySQL里创建外键时错误的解决

--MySQL里创建外键时错误的解决--------------------------------2014/04/30在MySQL里创建外键时(Alter table xxx add constraint fk_xxx foreign key),提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can't create table '.\env_mon\#sql-698_6.frm' (errno: 150).根本起不到解决问题的作用.要看错误的详细提示,可以使用命令:(

JavaScript基础 Date(日期字符串 包括时分秒)

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 Date(年,月,日,时,分,秒,毫秒) 多个整型赋值

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

MySQLs数据库建外键时自动跑到缩影处,真奇怪

MySQLs数据库建外键时自动跑到缩影处,真奇怪MyISAM引擎不支持外键:InnoDB存储引擎支持外键.如何解决的,把表修改成innodb类型吧用的工具是SQLyog Ultimate如图所示:

ubuntu中vim下按上下左右键时输入A、B、C、D的问题

ubuntu下使用vi 进行编辑文件时,按上下左右键时,会输入A.B.C.D,这个用起来很不方便.网上查得此问题的原因是: ubuntu系统自带的 vi 不完整导致,解决方法:安装完整的vi $ sudo apt-get install vim-gtk 不安装更新的情况下或可如下设置: 在insert模式中,按上下左右箭头时会出现ABCD,只要输入: :set term=cons25 但是这样的话,每次都需要这样改,但是使用如下方法可以解决: 在你的home目录下创建一个.vimrc文件(如果你

去掉标题栏/ActionBar后点击menu键时应用崩溃

MainActivity 继承了 ActionBarActivity后,想要去掉标题栏(ActionBar),在程序中加上requestWindowFeature(Window.FEATURE_NO_TITLE);,结果标题栏是去掉了,但是在点击Menu键时应用会崩溃.在网上找了一下解决方法,都是把MainActivity继承ActionBarActivity改为继承Activity,这样虽然能够解决问题,但是如果一定是要继承ActionBarActivity不能改的话要怎么办呢?例如在我的程序

Unity之一天一个技术点(五)---解决U3D程序“按下休眠键时退出程序”的问题

解决U3D程序"按下休眠键时退出程序"的问题(官方解决方案) 更改AndroidManifest.xml中的<activity>标签,来包含<android:configChanges>标记 活动标签示例如下所示:- <activity android:name=".AdMobTestActivity" android:label="@string/app_name" android:configChanges=&q

[转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法

[From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952771 我的理解是,如果出现如题所描述的问题,这是因为使用了不同的shell程序和对应的stty设置对应关系所综合作用的结果. 这是/bin/sh里面stty -a命令输出的信息: $ stty -a speed 38400 baud; rows 43; columns 209; line = 0;

Linux使用退格键时出现^H ^?解决方法

Linux使用退格键时出现^H ^?解决方法 在linux下执行脚本不注意输错内容需要删除时总是出现^H ^H不是H键的意思,是backspace.主要是当你的终端backspace有问题的时候才需要设置. 解决方法有两种: 1.要使用回删键(backspace)时,同时按住ctrl键 2.设定环境变量 在脚本的开头或结尾 参数 stty erase ^H stty erase ^? 在bash下:$stty erase ^? 或者把 stty erase ^? 添加到.bash_profile