js网页全屏及禁止特殊按键防止页面刷新与前进后退(改进版)

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

     

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值