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 })();