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 })();
  • 相关阅读:
    作为Web开发人员,我为什么喜欢Google Chrome浏览器
    PostgreSQL数据类型
    Postgres 9.11 网络地址类型函数和操作符
    失败如何助你升入最高管理层
    你真的会用Gson吗?Gson使用指南(2)
    你真的会用Gson吗?Gson使用指南(1)
    软件开发的一些"心法"
    Json解析教程(四.FastJson 的使用)
    JSON数据之使用Fastjson进行解析(一)
    alibaba fastjson常见问题FAQ
  • 原文地址:https://www.cnblogs.com/wanglijun/p/8183713.html
Copyright © 2011-2022 走看看