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