目前只测试IE和Chrome,其他浏览器并未做过相应测试。
document.oncontextmenu = function(e) {
var evt = e || window.event;
evt.returnValue = false;
return false;
}; //屏蔽鼠标右键(适用于所有浏览器)
//在IE中需要使用window.onhelp才可以屏蔽F1帮助
window.onhelp = function(e) {
var evt = e || window.event;
evt.cancelBubble = true;
evt.returnValue = false;
if(evt.preventDefault) evt.preventDefault();
if(evt.stopPropagation) evt.stopPropagation();
return false;
}; //屏蔽F1帮助
//如下方法对IE管用(除开F1,IE的F1需要借用window.onhelp),对Chrome都管用
window.onkeydown = document.onkeydown = document.documentElement.onkeydown = function(e) {
var evt = e || window.event;
var currKey = evt.keyCode||evt.which||evt.charCode;
//注:这还不是真正地屏蔽 Alt+ 方向键,因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,用鼠标点掉警告框,这种屏蔽方法就失效了
if ((evt.altKey) && ((currKey == 37) || //屏蔽 Alt+ 方向键 ←
(currKey == 39))) //屏蔽 Alt+ 方向键 →
{
alert("不准你使用ALT+方向键前进或后退网页!");
evt.cancelBubble = true;
evt.returnValue = false;
if(evt.preventDefault) evt.preventDefault();
if(evt.stopPropagation) evt.stopPropagation();
}
if ((currKey == 8) || //屏蔽退格删除键
//(currKey == 27) || //屏蔽ESC.不成功
(currKey == 112) || //屏蔽 F1,非IE可以,IE需要通过另外一种方式,见上
(currKey == 113) || //屏蔽 F2
(currKey == 114) || //屏蔽 F3
(currKey == 115) || //屏蔽 F4
(currKey == 116) || //屏蔽 F5
(currKey == 117) || //屏蔽 F6
(currKey == 118) || //屏蔽 F7
(currKey == 119) || //屏蔽 F8
(currKey == 120) || //屏蔽 F9
(currKey == 121) || //屏蔽 F10
(currKey == 122) || //屏蔽 F11 //全屏的时候,退出全屏还是有效
(currKey == 123) || //屏蔽 F12
(evt.ctrlKey && currKey == 82) || //Ctrl + R
(evt.ctrlKey && currKey == 78) || //Ctrl + n,对Chrome无效
(evt.shiftKey && currKey == 121) || 屏蔽 shift+F10
(evt.srcElement.tagName == "A" && evt.shiftKey) || 屏蔽 shift 加鼠标左键新开一网页
(evt.altKey && currKey == 115) //屏蔽Alt+F4,只有在全屏下有效
){
evt.keyCode = 0;
evt.cancelBubble = true;
evt.returnValue = false;
if(evt.preventDefault) evt.preventDefault();
if(evt.stopPropagation) evt.stopPropagation();
}
};