屏蔽滑鼠右鍵、Ctrl+N、Shift+F10、F11、F5重新整理、退格鍵 原文如下:
//屏蔽滑鼠右鍵、Ctrl+N、Shift+F10、F11、F5重新整理、退格鍵 function document.oncontextmenu() { event.returnValue = false; } //屏蔽滑鼠右鍵 function window.onhelp() { return false } //屏蔽F1協助 function document.onkeydown() { if ((window.event.altKey) && ((window.event.keyCode == 37) || //屏蔽 Alt+ 方向鍵 ← (window.event.keyCode == 39))) //屏蔽 Alt+ 方向鍵 → { //alert("不準你使用ALT+方向鍵前進或後退網頁!"); event.returnValue = false; } /* 註:這還不是真正地屏蔽 Alt+ 方向鍵, 因為 Alt+ 方向鍵彈出警告框時,按住 ALT 鍵不放, 用滑鼠點掉警告框,這種屏蔽方法就失效了。以後若 有哪位高手有真正屏蔽 ALT 鍵的方法,請告知。*/ if ((event.keyCode == 8) || //屏蔽退格刪除鍵 (event.keyCode == 116) || //屏蔽 F5 重新整理鍵 (event.ctrlKey && event.keyCode == 82)) { //Ctrl + R event.keyCode = 0; event.returnValue = false; } if (event.keyCode == 122) { event.keyCode = 0; event.returnValue = false; } //屏蔽F11 if (event.ctrlKey && event.keyCode == 78) event.returnValue = false; //屏蔽 Ctrl+n if (event.shiftKey && event.keyCode == 121) event.returnValue = false; //屏蔽 shift+F10 if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false; //屏蔽 shift 加滑鼠左鍵新開一網頁 if ((window.event.altKey) && (window.event.keyCode == 115)) //屏蔽Alt+F4 { //window.showModelessDialog("about:blank", "", "dialogWidth:1px;dialogheight:1px"); return false; } }
現在項目上又需要屏蔽這些按鍵,發現Backspace鍵屏蔽之後在文字框裡也不能使用了。這給使用者帶來了極大的不便。修改為下面的代碼,就可以解決這個問題了。
//屏蔽滑鼠右鍵、Ctrl+N、Shift+F10、F11、F5重新整理、退格鍵 function document.oncontextmenu(){event.returnValue=false;}//屏蔽滑鼠右鍵 function window.onhelp(){return false} //屏蔽F1協助 function document.onkeydown() { if ((window.event.altKey)&& ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向鍵 ← (window.event.keyCode==39))) //屏蔽 Alt+ 方向鍵 → { event.returnValue=false; } /* 註:這還不是真正地屏蔽 Alt+ 方向鍵, 因為 Alt+ 方向鍵彈出警告框時,按住 ALT 鍵不放, 用滑鼠點掉警告框,這種屏蔽方法就失效了。以後若 有哪位高手有真正屏蔽 ALT 鍵的方法,請告知。*/ if ((event.keyCode==116)|| //屏蔽 F5 重新整理鍵 (event.ctrlKey && event.keyCode==82)){ //Ctrl + R event.keyCode=0; event.returnValue=false; } if (event.keyCode==122){event.keyCode=0;event.returnValue=false;} //屏蔽F11 if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n if (event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽 shift+F10 if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false; //屏蔽 shift 加滑鼠左鍵新開一網頁 if ((window.event.altKey)&&(window.event.keyCode==115)) //屏蔽Alt+F4 { return false; } // Backspace按鍵的控制。 var ev = window.event; var obj = ev.target || ev.srcElement; var t = obj.type || obj.getAttribute('type'); var vReadOnly = obj.getAttribute('readonly'); var vEnabled = obj.getAttribute('enabled'); vReadOnly = (vReadOnly == null) ? false : vReadOnly; vEnabled = (vEnabled == null) ? true : vEnabled; //當敲Backspace鍵時,事件來源類型為密碼或單行、多行文本的, //並且readonly屬性為true或enabled屬性為false的,則退格鍵失效 var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") && (vReadOnly==true || vEnabled!=true))?true:false; //當敲Backspace鍵時,事件來源類型非密碼或單行、多行文本的,則退格鍵失效 var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea") ?true:false; if(flag2){ return false; } if(flag1){ return false; } }