zoukankan      html  css  js  c++  java
  • 原生javascript禁用和屏蔽鼠标右键

     1 (function(){
     2     var doc=document,
     3         ua = navigator.userAgent.toLowerCase(),
     4         check = function(r){return r.test(ua);},
     5         isOpera = check(/opera/),
     6         isChrome = check(/chrome/),
     7         isWebKit = check(/webkit/),
     8         isSafari = !isChrome && check(/safari/),
     9         isSafari2 = isSafari && check(/applewebkit/4/),
    10         isSafari3 = isSafari && check(/version/3/),
    11         isSafari4 = isSafari && check(/version/4/),
    12         isIE = !isOpera && check(/msie/),
    13         isIE7 = isIE && check(/msie 7/),
    14         isIE8 = isIE && check(/msie 8/),
    15         isIE9 = isIE && check(/msie 9/),
    16         isIE10 = isIE && check(/msie 10/),
    17         isIE11 = isIE && check(/msie 11/),
    18         isIE6 = isIE && !isIE7 && !isIE8 && !isIE9 && !isIE10 && !isIE11,
    19         isGecko = !isWebKit && check(/gecko/),
    20         isGecko2 = isGecko && check(/rv:1.8/),
    21         isGecko3 = isGecko && check(/rv:1.9/);
    22     function preventKey(e) {
    23         var ev = e || window.event,//获取event对象  
    24         obj = ev.target || ev.srcElement,//获取事件源  
    25         t = obj.type || obj.getAttribute('type'),readonly = obj.readOnly||obj.getAttribute('readonly'), code = ev.keyCode||ev.which||ev.charCode,charcode = String.fromCharCode(code).toLowerCase();//获取事件源控件类型,控件只读属性,键盘值
    26         if ( (code == 8 && t != "password" && t != "text" && t != "textarea")||(readonly&&(t == "password" || t == "text" || t == "textarea"))) {//除不只读输入框外禁止后退键
    27             return false;
    28         }
    29         if (((isOpera || isGecko)?ev.which==0:true)&&(code == 116 || code == 122|| code == 123 || (ev.shiftKey && code == 121))||(((isOpera || isGecko)?ev.which!=0:true)&&ev.ctrlKey && (charcode == 'a' || charcode == 's'))) {//屏蔽 F5,F11,F12,shift+F10,ctrl+a,ctrl+s
    30             if (isIE)
    31                 ev.keyCode = 0;
    32             ev.returnValue = false;
    33             return false;
    34         }
    35     };
    36     if (isOpera || isGecko)
    37         doc.onkeypress = preventKey;
    38     else if (isIE || isChrome || isSafari)
    39         doc.onkeydown = preventKey;
    40     if(isIE)document.onselectstart=function(){return false;};
    41     doc.oncontextmenu = function(){
    42         if(window.event){
    43             window.event.cancelBubble = true;
    44             window.event.returnValue=false;
    45         }
    46         return false;
    47     };
    48     try{window.history.forward(1);}catch(e){}
    49 })();
  • 相关阅读:
    docker的核心概念、docker的安装与卸载
    centos 7 配置yum源
    杂记
    linux命令之rpm(软件的安装卸载)
    chrony服务及cobbler+pxe实现自动化装机
    sshd登录控制脚及本sudo权限设置
    selinux控制脚本、AWK应用、监控访问脚本实例
    排除GC引起的CPU飙高
    POI报表导入导出
    逆向学习之环境准备
  • 原文地址:https://www.cnblogs.com/wanglijun/p/8183713.html
Copyright © 2011-2022 走看看