在JSP的頁面上可以通過JavaScript來截獲鍵盤的按鍵事件
發(fā)表時間:2024-06-15 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]頁面中的鍵盤控制 Capturing Keystrokes 相應(yīng)敲擊鍵是電腦和人的基本相互作用。你可以控制任何一個鍵的按下和松開。首先我們先要知道如何啟動一個所謂的事件 (event). 下面是啟動一個把鍵按下的"onkeydown" 的事件. document.onkeydo...
頁面中的鍵盤控制
Capturing Keystrokes
相應(yīng)敲擊鍵是電腦和人的基本相互作用。你可以控制任何一個鍵的按下和松開。首先我們先要
知道如何啟動一個所謂的事件 (event). 下面是啟動一個把鍵按下的"onkeydown" 的事件.
document.onkeydown = keyDown
這里的 keyDown 是你所要編寫的相應(yīng)鍵盤的子程序。當(dāng)你的瀏覽器讀了以上的語句, 它將會知
道哪個鍵被按下了,然后啟動子程序 keyDown()。 子程序的名字隨你起了,在這里在子程序名\r
字后面不需要括號。取得哪個鍵被按下卻在Netscape 和 IE 有所不同?匆韵麓a,如果用的是
Netscaep, 變量 nKey 將會得到 key code, 而讓 ieKey 為 0. 相反, 如果用的是 IE, ieKey
為 key code 而 nKey 為 0:
代碼:
function keyDown(e) {
if (ns4) {
var nKey=e.which;
var ieKey=0
}
if (ie4) {
var ieKey=event.keyCode; var nKey=0
}
alert("nKey:"+nKey+" ieKey:" + ieKey);
}
document.onkeydown = keyDown
if (ns4) document.captureEvents(Event.KEYDOWN)
用鍵盤移動元素
假如你想用鍵盤來啟動你的滑動, 你需要先知道哪個鍵被按了, 然后用相應(yīng)的子程序來滑動元
素. 下面我們準(zhǔn)備用 "A" 鍵來啟動滑動子程序. Netscape 的 "A" 是 97. 而 IE 是 65. 也就
是說, nKey 為 97 而 ieKey 為 65.
代碼:
function init() {
if (ns4) block = document.blockDiv
if (ie4) block = blockDiv.style
block.xpos = parseInt(block.left)
document.onkeydown = keyDown
if (ns4) document.captureEvents(Event.KEYDOWN)
}
function keyDown(e) {
if (ns4) {
var nKey=e.which; var ieKey=0
}
if (ie4) {
var ieKey=event.keyCode;
var nKey=0
}
if (nKey==97 ieKey==65) {
// if "A" key is pressed slide()
}
}
function slide() {
if (block.xpos < 300) {
block.xpos += 5 block.left = block.xpos status = block.xpos
// not needed, just for show
setTimeout("slide()",30)
}
}
啟動變量
我們這里介紹一種方法: 啟動變量, 來控制滑動的停止和啟動. 這個變量記錄了元素是否在動
還是不動. 然后在滑動子程序里放置 "if" 語句, 根據(jù)這個啟動變量的值來決定是否停止還是
繼續(xù)滑動.
代碼:
function slide() {
if (myobj.active) {
myobj.xpos += 5
myojb.left = myobj.xpos
setTimeout("slide()",30)
}
}
使用 onKeyUp 和啟動變量來控制滑動
onkeyup 就是 onkeydown 相反, 也就是說它用來對鍵起來這個事件做出反應(yīng)的.
代碼:
document.onkeydown = keyDown
document.onkeyup = keyUp if (ns4)
document.captureEvents(Event.KEYDOWN Event.KEYUP)
下面就是一個完整的程序代碼:
function init() { if (ns4) block = document.blockDiv if (ie4) block = blockDiv.style block.xpos = parseInt(block.left) block.active = false document.onkeydown = keyDown document.onkeyup = keyUp if (ns4) document.captureEvents(Event.KEYDOWN Event.KEYUP) } function keyDown(e) { if (ns4) { var nKey=e.which; var ieKey=0 } if (ie4) { var ieKey=event.keyCode; var nKey=0 } if ((nKey==97 ieKey==65) && !block.active) { // if "A" key is pressed block.active = true slide() } } function keyUp(e) { if (ns4) { var nKey=e.which; var ieKey=0 } if (ie4) { var ieKey=event.keyCode; var nKey=0} if (nKey==97 ieKey==65) { block.active = false // if "A" key is released } } function slide() { if (block.active) { block.xpos += 5 block.left = block.xpos status = block.xpos // not needed, just for show setTimeout("slide()",30) } }