js網頁全屏及禁止特殊按鍵防止頁面重新整理與前進後退(改進版)

來源:互聯網
上載者:User

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.onblur=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;       
 } 

     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.