js网页全屏及禁止网页所有按键(改进版)
2012-12-4 思远,杨勇 bjash@126.com
以下部分代码来源于网络搜集,这里只做了部分错误修改和整合的工作,
该代码适合制作需要全屏的页面,而且禁止特殊按键的情况!正常输入框输入和单选多选不影响。
//将本文件保存为forbidden.js,使用时:<script language="Javascript" src="forbidden.js"></script>
//禁止内容选择
function document.onselectstart(){return false;}
//禁止内容拖放
function document.ondragstart(){return false;}
//禁止右键弹出菜单
function document.oncontextmenu(){return false;}
//禁止打印,在样式内添加代码:
//@media print{body{display:none}},这样,打印出的网页都是空的。
function isFocus(eltId)
{ //判断一元素是否获得焦点
//alert(event.currentTarget.id);
//alert(document.activeElement.tagName);
if(document.activeElement.id==eltId)
{ //alert('获得焦点');
return true;
}
else{
//alert('未获得焦点');
return false;
}
} //
function isFullscreen ()
{ if(window.screenLeft == 0 && window.document.body.clientWidth == window.screen.width
&&window.document.body.offsetHeight==window.screen.height )
{ //location.href="帮助页,设置IE参数!";
//alert('全屏');
return true;
}
else
{ //alert('非全屏');
return false;
}
}
function auto_submit ()
{
//alert('离开');
}
window.οnblur=auto_submit;
//下面代码实现全屏显示
function window.onload()
{
//隐藏滚动条
//document.getElementsByTagName('body')[0].style.overflow='hidden';
//document.getElementsByTagName('body')[0].scroll="no";
isFullscreen();// ***************
}
function document.oncontextmenu(){ event.returnValue=false;} //屏蔽鼠标右键
function window.onhelp(){return false;} //屏蔽F1帮助
//屏蔽部分按键
function document.onkeydown()
{
//document.activeElement.type按键时所处对象的类型:type值
//typeof(document.activeElement.type)=='undefined') 聚焦到body时 type为undefined,注意用typeof来判断!!!
//document.activeElement.tagName 标签的名称BODY,INPUT,TEXTAREA等,这里INPUT不能区分text和radio等
//屏蔽退格后退页: 按键激活对象是单选按钮或多选按钮或BODY时屏蔽,而text,及textarea不屏蔽。
if( event.keyCode==8 &&( document.activeElement.type=='radio'||
document.activeElement.type=='check'||typeof(document.activeElement.type)=='undefined' ) )
{event.keyCode=0; event.returnValue=false; }
else if (event.ctrlKey && event.keyCode==82){event.keyCode=0;event.returnValue=false;} //屏蔽Ctrl + R
else if (event.keyCode==116||event.keyCode==122){event.keyCode=0;event.cancelBubble=true; event.returnValue=false;} //屏蔽F5,F11,阻止事件冒泡
else if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n
else if (event.ctrlKey && event.keyCode==67) event.returnValue=false; //屏蔽 Ctrl+v
else if (event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽 shift+F10
else if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false; //屏蔽 shift 加鼠标左键新开一网页
else if ((window.event.altKey)&&(window.event.keyCode==115)) //屏蔽Alt+F4
{ window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); return false; }
else if ( (window.event.altKey)&&((window.event.keyCode==37)||(window.event.keyCode==39)) )
{ //屏蔽 Alt+ 方向键 ← ,→ 前进或后退网页 ,但是按住 Alt 键不放,则拦不住
event.returnValue=false;
}
}