使用javascript屏蔽web页面上特定按键事件和右键菜单
2005-08-29 17:52
721 查看
简介
本文将介绍如何在web页面上禁用特定的按键,如Shift、Ctrl等,以及如何禁用右键菜单。下面介绍的方法适用于当前大多数浏览器。
代码实现
定义javascript 函数,并且将其作为页面body的onload事件的处理函数。
本文译自Prevent user hit some special keywords(Ctrl, Shift...) and access context menu on webpage
本文将介绍如何在web页面上禁用特定的按键,如Shift、Ctrl等,以及如何禁用右键菜单。下面介绍的方法适用于当前大多数浏览器。
代码实现
定义javascript 函数,并且将其作为页面body的onload事件的处理函数。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> function restrainIllegalOperation(){ document.onkeydown = keyEventHandle; document.oncontextmenu = contextEventHandle; } function keyEventHandle(e) { // The information under keys is registered. var shift, ctrl, alt; // Mozilla(Firefox, NN) and Opera if (e != null) { keycode = e.which; ctrl = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK; shift = typeof e.modifiers == 'undefined' ? e.shiftKey : e.modifiers & Event.SHIFT_MASK; alt = typeof e.modifiers == 'undefined' ? e.altKey : e.modifiers & Event.ALT_MASK; // Internet Explorer } else { keycode = event.keyCode; ctrl = event.ctrlKey; shift = event.shiftKey; alt = event.altKey; } // Ctrl + R if((ctrl && keycode == 82) || (ctrl == 17 && keycode == 82)) { // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); // Internet Explorer } else { // The higher rank propagation of an event is prevented. event.keyCode = 0; event.returnValue = false; event.cancelBubble = true; } return false; } // Ctrl + F5 if((ctrl && keycode == 116) || (ctrl == 17 && keycode == 116)) { // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); // Internet Explorer } else { // The higher rank propagation of an event is prevented. event.keyCode = 0; event.returnValue = false; event.cancelBubble = true; } return false; } // F5 if(keycode == 116) { // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); // Internet Explorer } else { // The higher rank propagation of an event is prevented. event.keyCode = 0; event.returnValue = false; event.cancelBubble = true; } return false; } // Alt if((alt && keycode == 37) || (alt == 18 && keycode == 37)) { // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); } return false; } // ESC if(keycode == 27) { // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); // Internet Explorer } else { // The higher rank propagation of an event is prevented. event.keyCode = 0; event.returnValue = false; event.cancelBubble = true; } return false; } // BackSpace if(keycode == 8) { if ((document.activeElement.type == "text") || (document.activeElement.type == "textarea") || (document.activeElement.type == "password") || (document.activeElement.type == "file")) { if(!document.activeElement.readOnly) { return true; } } // Mozilla(Firefox, NN) and Opera if (e != null) { // The higher rank propagation of an event is prevented. e.which = 0; e.preventDefault(); e.stopPropagation(); // Internet Explorer } else { // The higher rank propagation of an event is prevented. event.keyCode = 0; event.returnValue = false; event.cancelBubble = true; } return false; } // Mozilla(Firefox, NN) and Opera if (e != null) { // In MacOS, Cmd+R (renewal of a Web page and cash) deters. if (e.metaKey && keycode == 82) { return false; } // In MacOS, it is Cmd+. Control of [(it moves to a front page) if (e.metaKey && keycode == 219) { return false; } } } function contextEventHandle() { return false; } </script> <title></title> </head> <body onload="restrainIllegalOperation()"> Prevent special keys and context menu. </body> </html>
本文译自Prevent user hit some special keywords(Ctrl, Shift...) and access context menu on webpage
相关文章推荐
- 使用Javascript封装实现屏蔽鼠标右键系统键菜单,并绑定自定义的事件
- WEB页面屏蔽IE右键菜单
- jquery和javascript屏蔽右键菜单及阻止事件冒泡
- 使用webview加载本地html页面,并处理html页面中的javascript事件
- web页面屏蔽右键菜单 左键选取
- Qt使用IE控件和屏蔽页面右键菜单
- 事件处理程序,(在页面上点击右键隐藏选择菜单)
- 禁止页面复制功能 js禁止复制 禁用页面右键菜单 屏蔽 F5 刷新键
- JavaScript屏蔽指定区域内右键菜单
- web 页面右键菜单
- JavaScript屏蔽指定区域右键菜单
- 网站页面屏蔽右键菜单的做法
- web页面禁止f12以及鼠标右键事件
- web页面禁止f12以及鼠标右键事件
- web页面禁止f12以及鼠标右键事件
- 关于Flex屏蔽默认右键菜单,捕获右键事件
- iOS用WKWebView与JS交互获取系统图片及WKWebView的Alert,Confirm,TextInput的监听代理方法使用,屏蔽WebView的可选菜单
- 掌握 Ajax,第 5 部分: 操纵 DOM 使用 JavaScript 即时更新 Web 页面
- QT 使用 Shockwave Flash Object 彻底屏蔽右键菜单
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)