(轉)js控制視窗失去焦點(包括屏蔽Alt+Tab鍵切換頁面)

來源:互聯網
上載者:User

標籤:int   char   blog   提交   com   完全   alert   失效   java   

本章內容轉自:http://www.cnblogs.com/BoKeYuanVinson/articles/3360954.html 

 

轉載自網路貼吧:

頁面指令碼是無法截獲alt鍵的,不過可以變通一下,我想你是希望學生不要切換出當前瀏覽器視窗,要達到這個目的可以不必截獲alt+tab,而改用window.onblur(),這個事件在當前頁面失去焦點時觸發,這樣以來,我們就可以在考試開始之前聲明:"如果做視窗切換,將導致系統立刻交卷,而不管你是否已經完成",然後,在頁面的頭部寫上類似下面的代碼:
---------------------------------------------------------
<HEAD>
<TITLE> Exam </TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">

<SCRIPT LANGUAGE="JavaScript">
function auto_submit (){
alert("你試圖離開當前視窗,系統將自動認可試卷!");
//自動認可的代碼, 例如: form1.submit();
}

window.onblur=auto_submit;
</SCRIPT>
</HEAD>
---------------------------------------------------------

這樣,只要使用者操作頁面外的任何東西(包括當前視窗的菜單,地址欄),都會觸發onblur事件.

--------
當使用者按下alt鍵時,預設會啟用瀏覽器的菜單,這樣輸入焦點已經不在頁面上了,頁面內的JS自然無可奈何,所以,如樓下Jack所說的,即使屏蔽了tab也還是不夠,因為alt+tab的組合是先按alt鍵,這個alt會讓我們捕獲鍵盤操作的JS代碼完全失效,關於這一點,你試試這段代碼就知道了:

 

 

<BODY onkeypress="alert(‘press!‘);return true" onkeydown="alert(‘down!‘);return true"></BODY>

你按esc、printscreen或alt,都不會有反應,其他的,包括ctrl在內都可以截獲。

 

另一張說法:

你可以這樣寫:
<body>
<script type="text/javascript">
function document.body.onkeydown()
{
var a = event.altKey;
var l = event.keyCode==?? <!--此處是Tab鍵KeyCode-->
var q = a&&l;
return !q;
}
</script>

 

(轉)js控制視窗失去焦點(包括屏蔽Alt+Tab鍵切換頁面)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.